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