aboutsummaryrefslogtreecommitdiff
path: root/lib/task
diff options
context:
space:
mode:
authorSilvio <s1lv10@uol.com.br>2010-07-28 12:08:01 -0300
committerSilvio <s1lv10@uol.com.br>2010-07-28 12:08:01 -0300
commitb68832a00307b23fc402b501166d5ecc89447785 (patch)
treef093ee490afe4a578532d10f62aa6cd3902017fc /lib/task
downloadsf_isis_importer_plugin-b68832a00307b23fc402b501166d5ecc89447785.tar.gz
sf_isis_importer_plugin-b68832a00307b23fc402b501166d5ecc89447785.tar.bz2
Initial import
Diffstat (limited to 'lib/task')
-rw-r--r--lib/task/isisImportTask.class.php45
1 files changed, 45 insertions, 0 deletions
diff --git a/lib/task/isisImportTask.class.php b/lib/task/isisImportTask.class.php
new file mode 100644
index 0000000..b6d70af
--- /dev/null
+++ b/lib/task/isisImportTask.class.php
@@ -0,0 +1,45 @@
+<?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.
+ $isis = new CineImporter($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']);
+ }
+}