sexta-feira, 17 de julho de 2015

Conceito 3 - Event Manager no Zend Framework 2

O terceiro e último conceito básico para um bom aproveitamento do zend framework 2 é o event manager.

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