Commit 657d6566 authored by zYne's avatar zYne

refactored plugins

parent 780c0deb
......@@ -36,6 +36,7 @@ class Doctrine_AuditLog extends Doctrine_Plugin
'versionColumn' => 'version',
'generateFiles' => false,
'table' => false,
'pluginTable' => false,
);
protected $_auditTable;
......@@ -96,13 +97,10 @@ class Doctrine_AuditLog extends Doctrine_Plugin
$options = array('className' => $className);
$builder = new Doctrine_Import_Builder();
$this->generateDefinition($options, $columns, array());
$def = $builder->buildDefinition($options, $columns);
$this->_options['pluginTable'] = $table->getConnection()->getTable($this->_options['className']);
if ( ! $this->_options['generateFiles']) {
eval($def);
}
return true;
}
}
......@@ -106,13 +106,8 @@ class Doctrine_I18n extends Doctrine_Plugin
$options = array('className' => $this->_options['className'],
'queryParts' => array('indexBy' => 'lang'));
$builder = new Doctrine_Import_Builder();
$this->generateClass($options, $columns, $relations);
$def = $builder->buildDefinition($options, $columns, $relations);
if ( ! $this->_options['generateFiles']) {
eval($def);
}
$this->_options['pluginTable'] = $table->getConnection()->getTable($this->_options['className']);
$this->_options['pluginTable']->bindQueryPart('indexBy', 'lang');
......
......@@ -35,7 +35,7 @@ class Doctrine_Plugin
/**
* @var array $_options an array of plugin specific options
*/
protected $_options = array();
protected $_options = array('generateFiles' => false);
/**
* __get
* an alias for getOption
......@@ -98,4 +98,23 @@ class Doctrine_Plugin
{
return $this->_options;
}
public function generateClass($options, $columns, $relations)
{
$builder = new Doctrine_Import_Builder();
if ($this->_options['generateFiles']) {
if (isset($this->_options['generatePath']) && $this->_options['generatePath']) {
$builder->setTargetPath($this->_options['generatePath']);
$builder->buildRecord($options, $columns, $relations);
} else {
throw new Doctrine_Plugin_Exception('If you wish to generate files then you must specify the path to generate the files in.');
}
} else {
$def = $builder->buildDefinition($options, $columns, $relations);
eval($def);
}
}
}
......@@ -30,7 +30,7 @@
* @link www.phpdoctrine.com
* @since 1.0
*/
class Doctrine_Search
class Doctrine_Search extends Doctrine_Plugin
{
protected $_options = array('generateFiles' => false,
'className' => '%CLASS%Index',
......@@ -48,26 +48,12 @@ class Doctrine_Search
}
}
public function getOption($option)
{
if (isset($this->_options[$option])) {
return $this->_options[$option];
}
throw new Doctrine_Search_Exception('Unknown option ' . $option);
}
public function analyze($text)
{
return $this->_options['analyzer']->analyze($text);
}
public function setOption($option, $value)
{
$this->_options[$option] = $value;
return $this;
}
/**
* updateIndex
* updates the index
......@@ -199,21 +185,7 @@ class Doctrine_Search
$columns += $fk;
$builder = new Doctrine_Import_Builder();
if ($this->_options['generateFiles']) {
if (isset($this->_options['generatePath']) && $this->_options['generatePath']) {
$builder->setTargetPath($this->_options['generatePath']);
$builder->buildRecord($options, $columns, $relations);
} else {
throw new Doctrine_Search_Exception('If you wish to generate files then you must specify the path to generate the files in.');
}
} else {
$def = $builder->buildDefinition($options, $columns, $relations);
eval($def);
}
$this->generateClass($options, $columns, $relations);
$this->_options['pluginTable'] = $table->getConnection()->getTable($this->_options['className']);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment