aboutsummaryrefslogtreecommitdiff
path: root/lib/sfIsisImporterBase.class.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sfIsisImporterBase.class.php')
-rw-r--r--lib/sfIsisImporterBase.class.php210
1 files changed, 0 insertions, 210 deletions
diff --git a/lib/sfIsisImporterBase.class.php b/lib/sfIsisImporterBase.class.php
deleted file mode 100644
index 62e7ead..0000000
--- a/lib/sfIsisImporterBase.class.php
+++ /dev/null
@@ -1,210 +0,0 @@
-<?php
-
-/**
- * IsisImporterBase: provides base ISIS import methods for importing data into
- * a Symfony project.
- *
- * Importing can be done either on actions or tasks.
- */
-class sfIsisImporterBase extends IsisConnector
-{
- /**
- * @var string $loglevel Log level.
- */
- var $loglevel = 'info';
-
- /**
- * @var int $processed Number of processed entries.
- */
- var $processed = 0;
-
- /**
- * Constructor.
- */
- public function __construct($loglevel = 'info')
- {
- parent::__construct();
- $this->loglevel = $loglevel;
- }
-
- /**
- * Create an ISIS configuration for a given database.
- *
- * @param string $database Database name
- * @return array Basic configuration
- */
- public function config($database)
- {
- // Default cinisis config file.
- $config = $this->isis->file();
-
- if (file_exists($config))
- {
- $this->log("Using Cinisis config file $config.");
- $config = sfYaml::load($config);
- }
- else {
- // Default configuration.
- $this->log("Cinisis config file not found, building configuration.");
- $config = array(
- 'implementation' => 'BiblioIsis',
- );
- }
-
- $config['database'] = $database;
- return $config;
- }
-
- /**
- * List available ISIS databases.
- *
- * @return array Available databases
- */
- public function databases()
- {
- foreach (glob(sfConfig::get('sf_lib_dir') .'/cinisis/schemas/*.yaml') as $file)
- {
- $databases[] = basename($file, '.yaml');
- }
-
- return $databases;
- }
-
- /**
- * Log dispatcher.
- *
- * @param string $message Log message
- * @param string $level Log level
- */
- public function log($message, $level = 'info')
- {
- // Available log levels ordered by verbosity.
- $levels = array_flip(array('fatal', 'info', 'warn', 'error', 'debug'));
-
- // Log level checking.
- if (array_search($level, $levels) === FALSE)
- {
- $this->log("Invalid log level $level.", 'error');
- return;
- }
- elseif ($levels[$level] > $levels[$this->loglevel])
- {
- return;
- }
-
- // Dispatch.
- if ($this->section == 'action')
- {
- $this->caller->logMessage($message, $level);
- }
- else
- {
- $this->caller->logSection('isisImporter', "[$level] $message");
- }
- }
-
- /**
- * Progress notifier.
- *
- * @param int $n Row number
- */
- public function progress($n)
- {
- $this->processed = $n;
-
- if ($this->section == 'action')
- {
- $this->caller->output .= "Saved item $n\n";
- }
- else
- {
- // Progress bar is just shown if loglevel is 'fatal'.
- if ($this->loglevel == 'fatal')
- {
- $this->caller->progressBar($n, $this->entries);
- }
- }
- }
-
- /**
- * Guess a method name from a type.
- *
- * @param string $type Mapping type
- * @return string Method name
- */
- static function methodName($type)
- {
- return 'import'. ucfirst($type);
- }
-
- /**
- * Get the model foreign table id.
- *
- * @param object $model Model
- * @return string Model table id
- */
- static function getModelId($model) {
- return sfInflector::underscore(get_class($model)) .'_id';
- }
-
- /**
- * Get the relation foreign table id.
- *
- * @param string $model Relation name
- * @return string Relation table id
- */
- static function getRelationId($relation) {
- return sfInflector::underscore($relation) .'_id';
- }
-
- /**
- * Get the model and relation tablename.
- *
- * @param object $model Model
- * @param string $model Relation name
- * @return string Relation table name
- */
- static function getModelRelation($model, $relation)
- {
- return sfInflector::camelize(self::getModelName($model)) . sfInflector::camelize($relation);
- }
-
- /**
- * Get the entity name from a subfield.
- *
- * @param string $subfield Subfield name
- * @return string Genre name
- */
- static function entityName($subfield)
- {
- return ucfirst($subfield);
- }
-
- /**
- * Get the model name.
- *
- * @param object $model Model
- * @return string Model name
- */
- static function getModelName($model)
- {
- return get_class($model);
- }
-
- /**
- * After import procedure.
- */
- public function afterImport() {
- // Output ISIS log messages.
- if (is_array($this->isis->db->log))
- {
- foreach ($this->isis->db->log as $log)
- {
- $this->log("[isis] $log");
- }
- }
-
- $this->log("Finished mass import procedure.");
- $this->log("Total entries processed: $this->processed.");
- }
-}