在cakephp 2.3.4中添加组件

时间:2013-05-07 20:34:39

标签: cakephp-2.3

如果组件存在,如何首先添加带有检查的组件。 我在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 任何人都可以提供帮助 感谢

1 个答案:

答案 0 :(得分:1)

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

CakePHP 2.3使用'延迟加载',这意味着在实际使用之前,组件实际上并未加载/构建。这意味着开销更少,并且可以使您的应用程序更快地运行。

表明您可以使用某个类(组件),请使用App::uses();见Loading Classes

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

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

但是,要使用组件,只需将其添加到Controller的$components数组中,CakePHP应自动处理它;

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

请参阅Using Components