O event manager é um gerenciador de eventos ou seja, é uma classe responsável por disparar um determinado método quando outro determinado método for chamado.
Exemplo 1:
Quando eu me logar no sistema eu quero que o seja gravado no banco de dados um log de acesso.
Quando o método logar for chamado eu disparo o evento log.
Exemplo 2:
Quando eu tentar acessar a área reservada do sistema quero que o login e senha sejam validados.
Quando o método logar for chamado eu disparo o evento validaAcesso.
Como fazer isso no Zend Framework 2?
Usando o exemplo 2, vamos fazer um teste no arquivo Module.php que fica na raiz da pasta do module. Existem várias formas de utilizar o event manager, abaixo vamos utilizar o getSharedManager().
public function init(ModuleManager $moduleManager) {
$sharedEvents = $moduleManager-> getEventManager()-> getSharedManager();
$sharedEvents->attach(
'Zend\Mvc\Controller\ AbstractActionController',
Zend\Mvc\MvcEvent::EVENT_ DISPATCH,
array($this, 'validaAcesso'),
100
);
}
public function validaAcesso(){
$sessionContainer = new Container('usuario_auth');
if(!isset($sessionContainer->usuario_id) || $sessionContainer->usuario_id == 0){
die('nao pode acessar');
}
}
Mais informações:
http://framework.zend.com/manual/current/en/modules/zend.event-manager.event-manager.html
http://framework.zend.com/manual/current/en/tutorials/tutorial.eventmanager.html
https://samsonasik.wordpress.com/2013/03/30/zend-framework-2-getting-closer-with-eventmanager/
Nenhum comentário:
Postar um comentário