使用cakephp 2.0.2中shell类的插件组件

时间:2012-06-04 11:44:14

标签: cakephp cakephp-2.0

我想使用shell类中的插件组件。我正在尝试使用:

App::import('Component', 'Myplugin.Mycomponent');
$this->Mycomponent =& new MycomponentComponent();

不幸的是,上述情况似乎失败了。

我收到一条错误消息,指出无法找到Component类。

有任何建议我应该如何解决这个问题?

由于

2 个答案:

答案 0 :(得分:4)

你应该先看一下测试用例!通过这种方式,你会发现它们是以这种方式手动包含的:

App::uses('ComponentCollection', 'Controller');
App::uses('AppleComponent', 'Myplugin.Controller/Component');

$Collection = new ComponentCollection();
$Apple = new AppleComponent($Collection);

旁注: 如果你需要在一个控制器以外的地方使用一个组件而不是你做错了! 您应该将功能提取到模型或库中,并从组件和shell中调用它

答案 1 :(得分:0)

我知道这已经很老了,但我只是在处理遗留的 CakePHP 2 应用程序时遇到了这个问题。

在您的控制器中:

public $components = array(
    'Myplugin.Mycomponent',
);

然后您可以通过以下方式访问该组件:

$this->Mycomponent->mymethod();

Source