public function init() { self::$thisPath = realpath(dirname(__FILE__)); $fks = null; $packages = PhpBURN_Configuration::getConfig(); foreach ($packages as $package => $packageConfig) { $class = new PhpBURN_ReverseClass('null', $packageConfig->package); $tables = $class->getConnection()->getTables(); foreach ($tables as $table) { $fieldData = $class->getConnection()->describe($table); foreach ($fieldData as $data) { $field['name'] = $data[0]; $field['type'] = $data[2]; $field['lenght'] = $data[3]; $options['primary'] = $data[4]; $options['not_null'] = $data[5]; $options['default_value'] = $data[6]; $options['auto_increment'] = $data[7]; $field['options'] = $options; $field['package'] = $packageConfig->package; $field['tableName'] = $table; self::$rawFields[$packageConfig->database . '.' . $table][] = $field; self::$fields[$packageConfig->database . '.' . $table][] = self::generateField($data[0], $data[2], $data[3], $options); unset($field); } // self::$fields[$packageConfig->database . '.' . $table] = $fields; $fks = !is_array($fks) ? array() : $fks; $tableFks = $class->getConnection()->getForeignKeys($table); //IS NOT MODEL FK IS TABLE foreach ($tableFks as $index => $keyArr) { self::$rawFks[$index][] = $keyArr; self::$thisTableFks[$keyArr['referencedTable']][] = $keyArr; } // post-reverse unset($fields, $tableFks, $fieldData); } } // // print "<h1> ===== FINAL FIELDS ===== </h1>"; // print_r(self::$fields); // // print "<h1> ===== RAW FKS ===== </h1>"; // print_r(self::$rawFks); foreach (self::$thisTableFks as $origin => $item) { foreach ($item as $index => $value) { self::$fks[$value['referencedTable']][] = self::generateRelationship($origin, $value); } } // // print "<h1> ===== FINAL EXAMPLE ===== </h1>"; // print_r(self::$thisTableFks); // // print "<h1> ===== FINAL FKS ===== </h1>"; // print_r(self::$fks); self::constructModelFiles(); }
<?php ################################ # Hooks ################################ define('SYS_USE_FIREPHP', false, true); ################################ # Including required files ################################ require_once 'app/phpBurn.php'; require_once 'config.php'; ################################ # Start PhpBURN needed resources ################################ PhpBURN::enableAutoload(); PhpBURN_Message::setMode(PhpBURN_Message::CONSOLE); //Migrations tool PhpBURN::load('Migrations.Reverse'); ################################ # Starting application ################################ PhpBURN_Reverse::init();