function start($cli = false, $mods = '', $overwrite = '') { $ff = HTML_Flexyframework::get(); $this->scanModules(); //echo '<PRE>'; print_r($this->modtables); exit; $options =& PEAR::getStaticProperty('DB_DataObject', 'options'); $proj = 'pman'; //ucfirst(basename($options['database'])); // we are going to generate all of the code into a temporay foldler.. $user = posix_getpwuid(posix_getuid()); $options['rootDir'] = ini_get('session.save_path') . '/temp_' . $proj . '_' . $user['name']; $options['cli'] = $cli; $options['mods'] = empty($mods) ? array() : explode('/', $mods); if (!file_exists($options['rootDir'])) { mkdir($options['rootDir'], 0775, true); } $this->rootDir = $options['rootDir']; $options['schema_location'] = $this->rootDir . '/' . $proj . '/DataObjects'; $options['class_location'] = $this->rootDir . '/' . $proj . '/DataObjects'; $options['require_prefix'] = $proj . '/DataObjects/'; $options['class_prefix'] = $proj . '_DataObjects_'; // print_r($this);exit; $this->importSQL(); $standard_database = $options['database']; parent::start(); $this->scanModules(); require_once 'System.php'; $diff = System::which('diff'); // now for each of the directories copy/show diffs.. echo $cli ? '' : '<PRE>'; $flist = explode(',', $overwrite); foreach ($this->modtables as $m => $ar) { if ($options['database'] != $standard_database) { $options['database'] = $standard_database; parent::start(); } $options['database'] = $standard_database; if (isset($options['database_' . $m])) { $options['database'] = $options['database_' . $m]; //var_dump($url);exit; // start again? parent::start(); } if (!empty($options['mods']) && !in_array($m, $options['mods'])) { continue; } foreach (scandir($options['rootDir'] . '/' . $m) as $f) { if (!strlen($f) || $f[0] == '.') { continue; } // does it exist!!! $src = $options['rootDir'] . "/{$m}/{$f}"; $tg = $ff->page->rootDir . "/Pman/{$m}/DataObjects/{$f}"; if (preg_match('/\\.js$/', $f)) { $tg = $ff->page->rootDir . "/Pman/{$m}/{$f}"; } if (!file_exists($tg) || !filesize($tg)) { if ($cli && in_array($f, $flist)) { echo "COPY {$src} {$tg}" . ($cli ? "\n" : "<BR>"); copy($src, $tg); continue; } echo "!!!!MISSING!!! {$tg}" . ($cli ? "\n" : "<BR>"); continue; } // always copy readers and ini file.= nope - not on live.. if ($cli && in_array($f, $flist)) { //|| $f=='pman.ini' || preg_match('/\.js$/', $f))) { echo "COPY {$src} {$tg}" . ($cli ? "\n" : "<BR>"); copy($src, $tg); continue; } // diff the two.. $cmd = "{$diff} -u -w " . escapeshellarg($tg) . ' ' . escapeshellarg($src); $out = array(); $ret = 0; exec($cmd, $out, $ret); if ($ret == 0) { // files match.. continue; } // var_dump($ret); echo "\n" . implode("\n", $out) . "\n"; } } }
// | available at through the world-wide-web at | // | http://www.php.net/license/2_02.txt. | // | If you did not receive a copy of the PHP license and are unable to | // | obtain it through the world-wide-web, please send a note to | // | license@php.net so we can mail you a copy immediately. | // +----------------------------------------------------------------------+ // | Author: Alan Knowles <*****@*****.**> // +----------------------------------------------------------------------+ // // $Id: createTables.php,v 1.1.1.1 2005/04/29 04:44:36 lux Exp $ // require_once 'DB/DataObject/Generator.php'; if (!ini_get('register_argc_argv')) { PEAR::raiseError("\nERROR: You must turn register_argc_argv On in you php.ini file for this to work\neg.\n\nregister_argc_argv = On\n\n", null, PEAR_ERROR_DIE); exit; } if (!@$_SERVER['argv'][1]) { PEAR::raiseError("\nERROR: createTable.php usage:\n\nC:\\php\\pear\\DB\\DataObjects\\createTable.php example.ini\n\n", null, PEAR_ERROR_DIE); exit; } $config = parse_ini_file($_SERVER['argv'][1], true); $options =& PEAR::getStaticProperty('DB_DataObject', 'options'); $options = $config['DB_DataObject']; if (!$options) { PEAR::raiseError("\nERROR: could not read ini file\n\n", null, PEAR_ERROR_DIE); exit; } //DB_DataObject::debugLevel(5); $generator = new DB_DataObject_Generator(); $generator->start();
function regenerateDataObject() { $generator = new DB_DataObject_Generator(); $generator->start(); }