adding a plugin propery to models wwith tests for ticket #85

Merge pull request #696
This commit is contained in:
dogmatic69 2012-06-19 22:46:34 +01:00 committed by mark_story
parent 268e58956d
commit 6d4f4b57d7
3 changed files with 21 additions and 1 deletions

View file

@ -235,6 +235,13 @@ class Model extends Object implements CakeEventListener {
*/
public $tablePrefix = null;
/**
* Plugin model belongs to.
*
* @var string
*/
public $plugin = null;
/**
* Name of the model.
*
@ -665,12 +672,16 @@ class Model extends Object implements CakeEventListener {
extract(array_merge(
array(
'id' => $this->id, 'table' => $this->useTable, 'ds' => $this->useDbConfig,
'name' => $this->name, 'alias' => $this->alias
'name' => $this->name, 'alias' => $this->alias, 'plugin' => $this->plugin
),
$id
));
}
if ($this->plugin === null) {
$this->plugin = (isset($plugin) ? $plugin : $this->plugin);
}
if ($this->name === null) {
$this->name = (isset($name) ? $name : get_class($this));
}

View file

@ -1667,6 +1667,14 @@ class ModelIntegrationTest extends BaseModelTest {
$result = $TestModel->alias;
$expected = 'AnotherTest';
$this->assertEquals($expected, $result);
$TestModel = ClassRegistry::init('Test');
$expected = null;
$this->assertEquals($expected, $TestModel->plugin);
$TestModel = ClassRegistry::init('TestPlugin.TestPluginComment');
$expected = 'TestPlugin';
$this->assertEquals($expected, $TestModel->plugin);
}
/**

View file

@ -124,6 +124,7 @@ class ClassRegistry {
list($plugin, $class) = pluginSplit($class);
if ($plugin) {
$pluginPath = $plugin . '.';
$settings['plugin'] = $plugin;
}
if (empty($settings['alias'])) {