Já sabemos a estrutura básica de um módulo no zend framework 2 quando utilizamos o Zend Skeleton Application, agora vamos entender o que é um módulo. Mas antes de sabemos que é um módulo é válido lembrar que o zend framework 2 foi totalmente reconstruído e agora trabalha de forma 100% modular, ou seja, cada módulo é independente um do outro isso significa que para cada módulo que criarmos teremos suas configurações próprias. Falando e reaproveitamento, podemos afirmar que podemos sim reaproveitar um módulo para várias aplicações.
O que é um módulo?
Um módulo é uma determinada área da sua aplicação responsável pelas funções de uma entidade especifica, por exemplo: administradores, clientes, fornecedores, usuários. Geralmente teremos para cada tabela do banco de dados um módulo respectivo.
Criando um módulo
Vamos seguir a mesma estrutura do Module Application que é instalado por padrão junto ao Zend Skeleton Application. Vamos criar o module Administrador.
1 - Dentro da pasta module/ crie uma pasta Administrador, este é o nome do nosso módulo.
2 - Entre em module/Administrador. Crie as três pastas: config, src, view.
3 - Vá em module/Application/config e copie o arquivo module.config.php para o pasta do nosso módulo module/Administrador/config.
4 - Agora abra o arquivo module.config.php mude o nome da rota de home para adm e o modo de acesso "route" de "/" para "/adm".
5 - Dentra da pasta src vamos criar uma pasta. Sempre essa pasta deverá ter o nome do nosso módulo. Então vamos criar a pasta Administrador.
6 - Em module/Administrador/src/Administrador vamos criar as seguintes pastas para montarmos a estrutura inicial. Crie as pastas controller, form, service, entity.
7 - Volte ao módulo padrão Application e entre na pasta view. Copie as pastas layout e error para a pasta view do nosso modulo Administrador.
8 - Ainda dentro de module/Administrador/view/ cria a pasta administrador novamente essa pasta deve conter o nome do nosso módulo.
9 - Vamos voltar ao módulo Application e na root podemos encontrar o arquivo Module.php. Vamos copia-lo para a root do nosso módulo Administrador.
10 - Vamos abrir o arquivo Module.php e vamos alterar o namespace de Application para Module.
Colocando pra funciona.
1 - Em module/Administrador/config no arquivo module.config.php vamos deixar nossa rota adm da seguinte forma:
'route' => '/adm',
'defaults' => array(
'controller' => 'Administador\Controller\Administador',
'action' => 'index',
),
2 - Ainda no arquivo module.config.php vamos alterar o indice controller, deixando assim:
'controllers' => array(
'invokables' => array(
'Administador\Controller\Administador' => 'Administador\Controller\Administador',
),
),
3 - Vamos em module/Administrador/src/Administrador/Controller e vamos criar a classe AdministradorController.php
4 - A classe AdministradorController deve ficara assim:
<?php
namespace Administrador\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
class AdministradorController extends AbstractActionController
{
public function indexAction()
{
return new ViewModel();
}
}
5 - Em module/Administrador/view/administrador vamos criar as pasta administrador e dentro dela o arquivo index.phtml. Vamos entender a estrutura da view: Sempre iremos criar uma pasta com o nome do nosso módulo no caso é administrador, dentro dela vamos criar uma pasta com o nome do nosso controller administrador novamente e a extenção do nosso arquivo sempre deverá ser .phtml e o nome dele é o nome da nossa action indexAction então teremos index.phtml.
6 - Vamos acessar o arquivo application.config.php para registrarmos nosso modulo. Ele não está dentro do nosso módulo mas na pasta config do zend framework.
7 - Agora abra o terminal e vamos acessar a pasta public da nossa aplicação:
cd /var/www/html/meu_zf2/public/
8 - Então vamos iniciar o servidor embutido: php -S localhost:8888
9 - Abra o brower e digite: http://localhost:8888/adm
10 - A tela do zend framework deverá aparecer sem erros.
Mais informações:
http://framework.zend.com/manual/current/en/modules/zend.module-manager.intro.html
http://framework.zend.com/manual/current/en/modules/zend.module-manager.best-practices.html
http://framework.zend.com/manual/current/en/user-guide/modules.html
Nenhum comentário:
Postar um comentário