Changeset 5383
- Timestamp:
- 10/05/07 20:53:41 (1 year ago)
- Files:
-
- plugins/sfDoctrinePlugin/trunk/lib/sfDoctrineSchemasConfigHandler.class.php (modified) (1 diff)
- plugins/sfDoctrinePlugin/trunk/lib/tasks/sfDoctrineBaseTask.class.php (modified) (2 diffs)
- plugins/sfDoctrinePlugin/trunk/lib/tasks/sfDoctrineBuildAllTask.class.php (modified) (1 diff)
- plugins/sfDoctrinePlugin/trunk/lib/tasks/sfDoctrineBuildDbTask.class.php (modified) (2 diffs)
- plugins/sfDoctrinePlugin/trunk/lib/tasks/sfDoctrineBuildSchemaTask.class.php (modified) (2 diffs)
- plugins/sfDoctrinePlugin/trunk/lib/tasks/sfDoctrineBuildSqlTask.class.php (modified) (3 diffs)
- plugins/sfDoctrinePlugin/trunk/lib/tasks/sfDoctrineDataDumpTask.class.php (modified) (1 diff)
- plugins/sfDoctrinePlugin/trunk/lib/tasks/sfDoctrineDataLoadTask.class.php (modified) (1 diff)
- plugins/sfDoctrinePlugin/trunk/lib/tasks/sfDoctrineGenerateCrudTask.class.php (modified) (1 diff)
- plugins/sfDoctrinePlugin/trunk/lib/tasks/sfDoctrineInsertSqlTask.class.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
plugins/sfDoctrinePlugin/trunk/lib/sfDoctrineSchemasConfigHandler.class.php
r5376 r5383 42 42 if (empty($components)) { 43 43 $schema = explode('/', $schemaFile); 44 45 if (!isset($schema[1])) { 46 continue; 47 } 48 44 49 $pluginName = $schema[0]; 45 50 $schema = $schema[1]; plugins/sfDoctrinePlugin/trunk/lib/tasks/sfDoctrineBaseTask.class.php
r5374 r5383 19 19 abstract class sfDoctrineBaseTask extends sfBaseTask 20 20 { 21 public function load Doctrine()21 public function loadModels() 22 22 { 23 require_once(dirname(dirname(__FILE__)).'/doctrine/Doctrine.php');24 25 23 $directories = array(); 26 24 $directories[] = sfConfig::get('sf_model_lib_dir') . DIRECTORY_SEPARATOR . 'doctrine'; … … 40 38 $models = Doctrine::loadModels($directories); 41 39 } 40 41 public function loadConnections() 42 { 43 $doctrineConfigPath = sfConfig::get('sf_plugins_dir').'/sfDoctrinePlugin/config/doctrine.yml'; 44 45 $config = new sfDoctrineConfigHandler(); 46 $php = str_replace('<?php', '', $config->execute(array($doctrineConfigPath))); 47 48 eval($php); 49 50 $databases = sfYaml::load(sfConfig::get('sf_config_dir').'/databases.yml'); 51 $databases = $databases['all']; 52 53 foreach ($databases as $name => $database) 54 { 55 $info = Doctrine_Manager::getInstance()->parseDsn($database['param']['dsn']); 56 57 $dsn = $info['dsn']; 58 $user = $info['user']; 59 $password = $info['pass']; 60 61 $connection = Doctrine_Manager::getInstance()->openConnection(new PDO($dsn, $user, $password), $name); 62 63 // Load attributes to connection 64 foreach($default_attributes as $k => $v) 65 { 66 $connection->setAttribute(constant('Doctrine::'.$k), $v); 67 } 68 } 69 70 // Apply connection component binding 71 $schemasPath = sfConfig::get('sf_config_dir').'/schemas.yml'; 72 73 if (file_exists($schemasPath)) { 74 $schemas = new sfDoctrineSchemasConfigHandler(); 75 $php = str_replace('<?php', '', $schemas->execute(array($schemasPath))); 76 77 eval($php); 78 } 79 } 42 80 } plugins/sfDoctrinePlugin/trunk/lib/tasks/sfDoctrineBuildAllTask.class.php
r5370 r5383 52 52 $buildModel->run(); 53 53 54 $buildSql = new sfDoctrineBuildSqlTask($this->dispatcher, $this->formatter);55 $buildSql->run();56 57 54 $insertSql = new sfDoctrineInsertSqlTask($this->dispatcher, $this->formatter); 58 55 $insertSql->run(); plugins/sfDoctrinePlugin/trunk/lib/tasks/sfDoctrineBuildDbTask.class.php
r5370 r5383 23 23 */ 24 24 protected function configure() 25 { 25 { 26 26 $this->aliases = array('doctrine-build-db'); 27 27 $this->namespace = 'doctrine'; … … 45 45 protected function execute($arguments = array(), $options = array()) 46 46 { 47 47 $databases = sfYaml::load(sfConfig::get('sf_config_dir').'/databases.yml'); 48 $databases = $databases['all']; 49 50 foreach ($databases as $name => $database) 51 { 52 $dsn = $database['param']['dsn']; 53 $info = Doctrine_Manager::getInstance()->parseDsn($dsn); 54 55 $dsn = $info['scheme'].':host='.$info['host']; 56 $user = $info['user']; 57 $password = $info['pass']; 58 59 $connection = Doctrine_Manager::getInstance()->openConnection(new PDO($dsn, $user, $password), $name); 60 61 try { 62 $connection->export->createDatabase($info['database']); 63 } catch(Exception $e) { 64 65 } 66 } 48 67 } 49 68 } plugins/sfDoctrinePlugin/trunk/lib/tasks/sfDoctrineBuildSchemaTask.class.php
r5370 r5383 24 24 protected function configure() 25 25 { 26 $this->addArguments(array(27 new sfCommandArgument('application', sfCommandArgument::REQUIRED, 'The application name')28 ));29 30 $this->addOptions(array(31 new sfCommandOption('env', null, sfCommandOption::PARAMETER_REQUIRED, 'The environement', 'dev'),32 new sfCommandOption('connection', null, sfCommandOption::PARAMETER_REQUIRED, 'The connection name', 'doctrine'),33 ));34 35 26 $this->aliases = array('doctrine-build-schema'); 36 27 $this->namespace = 'doctrine'; … … 52 43 protected function execute($arguments = array(), $options = array()) 53 44 { 54 $this-> bootstrapSymfony($arguments['application'], $options['env'], true);45 $this->loadConnections(); 55 46 56 47 $schema = sfConfig::get('sf_root_dir') . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'doctrine' . DIRECTORY_SEPARATOR . 'schema.yml'; plugins/sfDoctrinePlugin/trunk/lib/tasks/sfDoctrineBuildSqlTask.class.php
r5370 r5383 23 23 */ 24 24 protected function configure() 25 { 26 $this->addArguments(array( 27 new sfCommandArgument('application', sfCommandArgument::REQUIRED, 'The application name') 28 )); 29 30 $this->addOptions(array( 31 new sfCommandOption('env', null, sfCommandOption::PARAMETER_REQUIRED, 'The environement', 'dev'), 32 new sfCommandOption('connection', null, sfCommandOption::PARAMETER_REQUIRED, 'The connection name', 'doctrine'), 33 )); 34 25 { 35 26 $this->aliases = array('doctrine-build-sql'); 36 27 $this->namespace = 'doctrine'; … … 54 45 protected function execute($arguments = array(), $options = array()) 55 46 { 56 $this-> bootstrapSymfony($arguments['application'], $options['env'], true);47 $this->loadConnections(); 57 48 58 49 $sqlPath = sfConfig::get('sf_root_dir').'/data/sql'; 59 50 60 $sql = Doctrine::exportSql(sfConfig::get('sf_root_dir').'/lib/model/doctrine'); 61 62 file_put_contents($sqlPath.'/doctrine-schema.sql', implode("\n", $sql)); 51 $directories = array(); 52 $directories[] = sfConfig::get('sf_root_dir').'/lib/model/doctrine'; 63 53 64 54 // Build sql for all of the plugins … … 67 57 foreach ($plugins as $plugin) 68 58 { 69 $ name = basename($plugin);59 $pluginModelPath = sfConfig::get('sf_plugins_dir').'/'.basename($plugin).'/lib/model/doctrine'; 70 60 71 $pluginModels = sfConfig::get('sf_plugins_dir').'/'.$name.'/lib/model/doctrine'; 72 73 if (file_exists($pluginModels)) 74 { 75 $sql = Doctrine::exportSql($pluginModels); 76 77 file_put_contents($sqlPath.'/doctrine-'.$name.'-schema.sql', implode("\n", $sql)); 61 if (file_exists($pluginModelPath)) { 62 $directories[] = $pluginModelPath; 78 63 } 79 64 } 65 66 $sql = Doctrine::exportSql($directories); 67 68 file_put_contents($sqlPath.'/doctrine-schema.sql', implode("\n", $sql)); 80 69 } 81 70 } plugins/sfDoctrinePlugin/trunk/lib/tasks/sfDoctrineDataDumpTask.class.php
r5370 r5383 65 65 $this->bootstrapSymfony($arguments['application'], $options['env'], true); 66 66 67 $this->loadDoctrine();68 69 $databaseManager = new sfDatabaseManager();70 71 67 if (!sfToolkit::isPathAbsolute($filename)) 72 68 { plugins/sfDoctrinePlugin/trunk/lib/tasks/sfDoctrineDataLoadTask.class.php
r5370 r5383 65 65 $this->bootstrapSymfony($arguments['application'], $options['env'], true); 66 66 67 $this->loadDoctrine();68 69 67 sfSimpleAutoload::getInstance()->unregister(); 70 68 sfSimpleAutoload::getInstance()->register(); plugins/sfDoctrinePlugin/trunk/lib/tasks/sfDoctrineGenerateCrudTask.class.php
r5374 r5383 63 63 $this->bootstrapSymfony($arguments['application'], $options['env'], true); 64 64 65 $this->loadDoctrine();66 67 65 // generate module 68 66 $tmpDir = sfConfig::get('sf_root_dir').DIRECTORY_SEPARATOR.'cache'.DIRECTORY_SEPARATOR.'tmp'.DIRECTORY_SEPARATOR.md5(uniqid(rand(), true)); plugins/sfDoctrinePlugin/trunk/lib/tasks/sfDoctrineInsertSqlTask.class.php
r5370 r5383 24 24 protected function configure() 25 25 { 26 $this->addArguments(array(27 new sfCommandArgument('application', sfCommandArgument::REQUIRED, 'The application name')28 ));29 30 $this->addOptions(array(31 new sfCommandOption('env', null, sfCommandOption::PARAMETER_REQUIRED, 'The environement', 'dev'),32 new sfCommandOption('connection', null, sfCommandOption::PARAMETER_REQUIRED, 'The connection name', 'doctrine'),33 ));34 35 26 $this->aliases = array('doctrine-insert-sql'); 36 27 $this->namespace = 'doctrine'; … … 53 44 protected function execute($arguments = array(), $options = array()) 54 45 { 55 $this-> bootstrapSymfony($arguments['application'], $options['env'], true);46 $this->loadConnections(); 56 47 57 48 Doctrine::exportSchema(sfConfig::get('sf_root_dir').'/lib/model/doctrine');