1 | <?php |
||
19 | class Atomizer extends Component |
||
20 | { |
||
21 | /** |
||
22 | * Render changes into source. |
||
23 | * |
||
24 | * @var RendererInterface |
||
25 | */ |
||
26 | private $renderer; |
||
27 | |||
28 | /** |
||
29 | * @var AbstractTable[] |
||
30 | */ |
||
31 | protected $tables = []; |
||
32 | |||
33 | /** |
||
34 | * @param RendererInterface $renderer |
||
35 | */ |
||
36 | public function __construct(RendererInterface $renderer) |
||
40 | |||
41 | /** |
||
42 | * Add new table into atomizer. |
||
43 | * |
||
44 | * @param AbstractTable $table |
||
45 | * |
||
46 | * @return Atomizer |
||
47 | */ |
||
48 | public function addTable(AbstractTable $table): self |
||
54 | |||
55 | /** |
||
56 | * Get all atomizer tables. |
||
57 | * |
||
58 | * @return AbstractTable[] |
||
59 | */ |
||
60 | public function getTables(): array |
||
64 | |||
65 | /** |
||
66 | * Generate set of commands needed to describe migration (up command). |
||
67 | * |
||
68 | * @param Source $source |
||
69 | */ |
||
70 | public function declareChanges(Source $source) |
||
87 | |||
88 | /** |
||
89 | * Generate set of lines needed to rollback migration (down command). |
||
90 | * |
||
91 | * @param Source $source |
||
92 | */ |
||
93 | public function revertChanges(Source $source) |
||
110 | |||
111 | /** |
||
112 | * Tables sorted in order of their dependecies. |
||
113 | * |
||
114 | * @param bool $reverse |
||
115 | * |
||
116 | * @return AbstractTable[] |
||
117 | */ |
||
118 | protected function sortedTables($reverse = false) |
||
136 | |||
137 | /** |
||
138 | * Add spacing between commands, only if required. |
||
139 | * |
||
140 | * @param Source $source |
||
141 | */ |
||
142 | private function declareBlock(Source $source) |
||
148 | } |