3.6.2.2 Acessando classes do MVC de dentro dos componentes
Para ter acesso a instância do controlador dentro do seu novo componente, você precisa implementar o método startup(). Este é um método especial que trás a referência do controlador como primeiro parâmetro e esta função é chamada automaticamente depois da função beforeFilter() do controlador. Se por alguma razão você não quer que o método startup() seja executado quando o controlador é instanciado, defina o valor da variável $disableStartup para true.
Se você deseja inserir uma lógica antes que o controlador seja chamado, use o método initialize() no seu componente.
<?php
class MathComponent extends Object {
//chamado antes de Controller:beforeFilter()
function initialize() {
}
//chamado depois de Controller::beforeFilter()
function startup(&$controller) {
}
function doComplexOperation($amount1, $amount2) {
return $amount1 + $amount2;
}
}
?>
<?phpclass MathComponent extends Object {//chamado antes de Controller:beforeFilter()function initialize() {}//chamado depois de Controller::beforeFilter()function startup(&$controller) {}function doComplexOperation($amount1, $amount2) {return $amount1 + $amount2;}}?>
Você pode também querer utilizar outros componentes dentro de um componente personalizado. Para isso, basta criar a variável $components na classe (assim como você faria em um controlador) como um array que contenha os nomes dos componentes que você deseja utilizar.
