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
Juan,
Assim como no comentário no post original eu repito as palavras do Nate.
O método beforeRedirect foi implementado há algum tempo atrás.
E os outros métodos estiveram lá por anos. Onde você este???
Falows cara, abraços!
Comentário por Renan Gonçalves — 4 junho 2008 @ 1:05 am