CakePHP的组件Component可以看作是Controller的辅助工具.在CakePHP中,已经有了一些默认的组件(在文件夹cake\libs\controller\components中),譬如:session.php,request_handler.php,cookie.php,email.php等等...
当然,我们也可以自已定义一些组件,最好将其放置在app/controllers/components/夹下.
建立一个Component,第一步:
class SoapComponent extends Component{
/*
*
* 引入第三方开源包
*
*
*/
function initialize(&$controller){
App::import('Vendor', 'nusoap/lib/nusoap');
}
function handel(){
//to do
}
}
使用Component:
在相应的controller中添加下面的代码:
var $components = array('Soap');
然后这样来调用:
$this->Soap->handel();
一个Component访问调用它的Controller一般是通过Component自己的startup()或者默认的initialize()方法来实现的.
它一般会在Controller::beforeFilter()之后被执行.设置Component的一些属性,也在beforeFilter中进行.
如果想在一个Component中使用其他的Component.
var $components = array("Soap");
而下面这种方式,则适用于任何地方:
if(!class_exists('RequestHandlerComponent')) {
App::import('Component', 'RequestHandler');
}
$RequestHandler = new RequestHandlerComponent();