<?php class isisImportTask extends mySfTask { protected function configure() { $this->addArgument('rows', sfCommandArgument::OPTIONAL, 'Optional number of rows to process'); $this->addOptions(array( new sfCommandOption('application', null, sfCommandOption::PARAMETER_REQUIRED, 'The application name'), new sfCommandOption('env', null, sfCommandOption::PARAMETER_REQUIRED, 'The environment', 'dev'), new sfCommandOption('connection', null, sfCommandOption::PARAMETER_REQUIRED, 'The connection name', 'doctrine'), new sfCommandOption('loglevel', 'l', sfCommandOption::PARAMETER_REQUIRED, 'Log level', 'info'), )); $this->namespace = 'isis'; $this->name = 'import'; $this->briefDescription = 'Imports an ISIS database into the application'; $this->detailedDescription = <<<EOF The [isis:import|INFO] task imports an ISIS database into the application. Call it with: [php symfony isis:import|INFO] EOF; } protected function execute($arguments = array(), $options = array()) { // initialize the database connection $databaseManager = new sfDatabaseManager($this->configuration); $connection = $databaseManager->getDatabase($options['connection'])->getConnection(); // Initialize an IsisConnector. $class = (class_exists('IsisImporterManager')) ? 'IsisImporterManager' : 'sfIsisImporterManager'; $isis = new $class($options['loglevel']); // Error handling. if ($isis == FALSE) { $this->logSection('isis', 'Error opening ISIS database.'); return FALSE; } // Mass ISIS import. $isis->massImport($this, 'task', $arguments['rows']); } }