diff --git a/lib/Cake/Console/Command/CommandListShell.php b/lib/Cake/Console/Command/CommandListShell.php index 4bf5b9356..67e0005cb 100644 --- a/lib/Cake/Console/Command/CommandListShell.php +++ b/lib/Cake/Console/Command/CommandListShell.php @@ -85,6 +85,7 @@ class CommandListShell extends Shell { $shellList = $this->_appendShells('CORE', $shells, $shellList); $appShells = App::objects('Console/Command', null, false); + $appShells = array_diff($appShells, $shells); $shellList = $this->_appendShells('app', $appShells, $shellList); $plugins = CakePlugin::loaded(); diff --git a/lib/Cake/Console/Command/Task/ExtractTask.php b/lib/Cake/Console/Command/Task/ExtractTask.php index 50c8c94b5..ab5ceaaf9 100644 --- a/lib/Cake/Console/Command/Task/ExtractTask.php +++ b/lib/Cake/Console/Command/Task/ExtractTask.php @@ -353,6 +353,9 @@ class ExtractTask extends Shell { foreach ($models as $model) { App::uses($model, $plugin . 'Model'); $reflection = new ReflectionClass($model); + if (!$reflection->isSubClassOf('Model')) { + continue; + } $properties = $reflection->getDefaultProperties(); $validate = $properties['validate']; if (empty($validate)) { diff --git a/lib/Cake/Core/App.php b/lib/Cake/Core/App.php index dadb8f7bc..c2234deba 100644 --- a/lib/Cake/Core/App.php +++ b/lib/Cake/Core/App.php @@ -447,9 +447,6 @@ class App { if (empty($path)) { $path = self::path($type, $plugin); - if (empty($plugin)) { - $path = array_merge($path, App::core($type)); - } } foreach ((array)$path as $dir) { diff --git a/lib/Cake/Test/Case/Core/AppTest.php b/lib/Cake/Test/Case/Core/AppTest.php index c878edcf4..0a96e7378 100644 --- a/lib/Cake/Test/Case/Core/AppTest.php +++ b/lib/Cake/Test/Case/Core/AppTest.php @@ -303,6 +303,14 @@ class AppTest extends CakeTestCase { $this->assertTrue(in_array('Dispatcher', $result)); $this->assertTrue(in_array('Router', $result)); + App::build(array( + 'Model/Behavior' => App::core('Model/Behavior'), + 'Controller' => App::core('Controller'), + 'Controller/Component' => App::core('Controller/Component'), + 'View' => App::core('View'), + 'Model' => App::core('Model'), + 'View/Helper' => App::core('View/Helper'), + ), App::RESET); $result = App::objects('behavior', null, false); $this->assertTrue(in_array('TreeBehavior', $result)); $result = App::objects('Model/Behavior', null, false);