Cakephp:在组件中加载组件

时间:2011-08-13 07:46:02

标签: cakephp

在app_controller.php中加载Session,Auth组件。

在posts_controller.php中,我使用CustomComponent和$ components = array('Session','Auth');

那么CustomComponent必须重新加载Session,Auth组件吗?

如果我使用并创建了很多组件,那些组件会使用其他组件。它会让app变得非常慢吗?


我在cakephp IRC中问过,一个人回答不是:

  

[11:05]它不会很慢,我相信它会通过参考传递那些

     

[11:05]所以你无需担心

2 个答案:

答案 0 :(得分:5)

假设您要将BComponent导入AComponent。

在aComponent

class AComponent extends Component {
     public $components = array('BComponent');

     public function xyz(){
           $test = $this->BComponent->abc($name);
           echo $test;
     }
}

BComponent

class BComponent extends Component {

     public function abc($name){
           return "My name is: ". $name;
     }
}

答案 1 :(得分:3)

是的,它必须是$components = array('Session','Auth','Custom');或者您可以使用:App::import('Component', 'Custom');$Custom = new CustomComponent();

Then do CustomComponent must reload Session, Auth components?如果你不在CustomComponent类中使用Session或Auth,那么没有。

It will make app is very slow?不,除非你使用了很多组件。