private static function generateReferences(Template $template, Table $table) { /** @var Reference $reference */ $references = []; foreach ($table->getReferences() as $reference) { $r = "new Reference('" . $reference->getName() . "', " . "['" . implode("', '", $reference->getColumns()) . "'], '" . $reference->getReferencedTable() . "', " . "['" . implode("', '", $reference->getReferencedColumns()) . "']"; if ($reference->getUpdateRule()) { $r .= ", '" . $reference->getUpdateRule() . "'"; } if ($reference->getDeleteRule()) { $r .= ", '" . $reference->getDeleteRule() . "'"; } $r .= ")"; $references[] = $r; } if (!empty($references)) { $template->set('references', implode(",\n" . self::LINE_PREFIX, $references)); } }
public final function dropReferences() { $current = Connection::getTableReferences($this->table->getName()); $new = $this->table->getReferences(); $this->drop($current, $new, $this->table->getName(), 'FOREIGN KEY'); }
public static function fillTableColumns(Table $table) { $res = self::query("SHOW FULL COLUMNS FROM `" . $table->getName() . "`"); if ($res) { $previous = false; while ($c = $res->fetch_array()) { if (!$previous) { $c['first'] = true; } else { $c['after'] = $previous; } $table->addColumn(new Column($c['Field'], $c)); $previous = $c['Field']; } } }