Descomplicando o Zend Framework 2 - Módulos, Eventos e Service Manager Artigo

Conheça os cursos gratuitos do WebDevBr! - Inscreva-se!


Este artigo foi publicado a 3 anos, 3 meses, 2 semanas, 6 dias atrás.

Pra começar de verdade por aqui, eu queria descomplicar as coisas para quem está começando, então vou escrever um pouco sobre Módulos, Eventos e o Service Manager.

Vejo muita comparação sobre porque usar o ZF2 ao invés do CakePHP, ou CI (Code Igniter) ou Laravel, e não da pra você comparar simplesmente porque alguém falou que era melhor, além da obvia falta de personalidade, cabe a você entender a fundo para poder escolher entre os muitos fatores que nem sempre se resumem ao código (ainda temos prazos, preços, preferência do patrão, preferência por questões didáticas e muitos outros fatores).

Antes de sair por ai tentando escrever códigos para o Zend Framework 2 (e quebrar a cara na maioria das vezes) devemos entender os "conceitos" por traz do framework.

Gostou deste artigo?

Receba atualizações semanais com novos artigos do WebDevBr e outras dicas!

Primeiro, entenda que o Zend Framework 2 se utiliza de Orientação a Objetos de verdade e não aquele monte de classes que muitas vezes acreditamos que conhecemos! Muita gente quebra a cara ai.

Então antes de continuar, acesse a área de alunos e faça o teste de conhecimento no nível intermediário.

Módulos

Módulos são conjuntos de MVC que resolvem um assunto específico, por exemplo, se você for criar um site para imobiliária teria os módulos:

  • Imoveis
  • Corretores
  • Usuários

Aonde cada um cuida exclusivamente do um assunto em questão, como guarda as informações e configurações que lhe são pertinentes para funcionar, persistir os dados, realizar testes, exibir telas... esse conceito de modularidade é excelente porque além de organizar e facilitar a manutenção permite que você compartilhe seu módulo com a comunidade ou reutilizar mais facilmente (especialmente se você usa o Composer), você ainda pode usar módulos de terceitos e deleguar mais facilmente tarefas a sua equipe.

Então se você leu até aqui já deve ter entendido que módulo não tem nada a ver com Model (M do MVC).

Eventos

Se eventos não foi a grande sacada do ZF2 então não sei o que seria, o conceito de eventos é que quando algo acontece você deve tomar uma ação expecífica, trocando em miúdos, o evento fica escutando algo específico e executa uma tarefa quando necessário.

Um exemplo prático é de um sistema de autenticação, o evento escuta quando um determinado (ou determinados) controller for acessado, e quando isso acontece ele executa a ação de checar a autenticação do usuário, se der certo ele acessa, caso contrário deverá ser bloqueado de alguma forma.

No Zend Framework o evento criado fica alí, esperando algo acontecer, e quando acontece o módulo avisa e algum observador (que pode ser um controller ou qualquer coisa) para tomar as devidas providências.

O Evento em sí não é a solução para nada ele apenas informa que algo aconteceu.

Veja o que diz a documentação do Zend Framework 2 sobre isso:

O EventManager é um componente projetado para os seguintes casos de uso:

Implementar simples padrões sujeito/observador.
Implementação de projetos Aspect-Oriented.
Implementação de arquiteturas orientadas a eventos.

A arquitetura básica permite ligar e desligar os ouvintes para eventos nomeados, tanto em uma base por exemplo, bem como através de coleções compartilhadas, desencadear eventos ou interromper a execução de ouvintes.

Aqui a página oficial com um exemplo de código.

Service Manager

Se os eventos são a grande sacada no ZF2, o Service Manager é o coração do framework, e é bem simples de entender também. O service manager é responsável, principalmente por retornar classes instanciadas corretamente e com todas as dependências resolvidas.

Sempre que um serviço é criado e registrado no ZF2, ele fica disponível para ser usado na aplicação de uma forma muito mais simples e prática.

Além do Service Manager, o ZF ainda tem o Zend/Di, que também trabalha com injeção de dependências, vale conhecer.

Conclusão

Claro que isso é só o começo, nem dei um exemplo prático sobre, mas aguarde, teremos muito ainda sobre o assunto.


Cursos relacionados


* Parcelamento apenas cartão de crédito! Pode haver uma pequena variação no parcelamento em relação a simulações apresentadas!