Recentemente, foram adicionados três novos métodos de callback para os componentes: beforeRender, beforeRedirect e shutdown.
Como o próprio nome já diz, o beforeRender() é chamado antes da view ser renderizada, mas depois do beforeRender() do controller:
1 2 3 4 | // no seu componente public function beforeRender($controller) { // faça alguma coisa } |
O beforeRedirect() também é obvio, é chamado antes de um redirect ser executado:
1 2 3 4 | // no seu componente function beforeRedirect($controller, $url, $status = null, $exit = true) { // faça alguma coisa } |
Retornando um valor você pode substituir os valores que foram passados no redirect original. Por exemplo:
1 2 3 4 | function beforeRedirect($controller, $url, $status = null, $exit = true) { // return '/redirect/target'; // um simples valor é tratado como uma URL return array('url' => '/redirect/target', 'status' => 307); } |
O último método de callback é o shutdown(). Ele é chamado depois de Controller::render() e antes de Controller::afterFilter():
1 2 3 4 | // no seu componente function shutdown($controller) { // faça alguma coisa } |
Continuem seus bolos…
Texto traduzido de New callback methods for components