0

如何添加组件,首先检查组件是否存在。我在 cakephp 2.2.3 上使用了这个

public function __construct( $request = null, $response = null ) {
    parent::__construct( $request, $response );
    $this->_setupApplicationComponents();
}

protected function _setupApplicationComponents() {
if ( App::import( 'Component', 'Search.Prg' ) ) {
    $this->components[] = 'Search.Prg';
}
}

它不适用于 cakephp 2.3.4。
任何人都可以提供帮助。
谢谢

4

1 回答 1

1

我不太确定您为什么要在使用组件之前检查它是否存在;如果找不到组件,CakePHP 会自动产生错误吗?

CakePHP 2.3 使用“延迟加载”,这意味着组件在实际使用之前不会被实际加载/构造。这意味着更少的开销,并使您的应用程序工作得更快。

表明您可以使用某个类(组件),请使用App::uses(); 请参阅加载类

在您的情况下,从插件加载Prg组件;Search

App::uses('Prg', 'Search.Controller/Component');

但是,要使用组件,只需将它添加到$components控制器的数组中,CakePHP 应该会自动处理它;

public $components = array(
    // Pluginname.Componentname
    'Search.Prg',
);

请参阅使用组件

于 2013-05-07T21:46:45.103 回答