Tutorial - Zend 2 - Módulos - Parte 3

Publicado em 31 de Mar 2015.

Módulos acho que é uma das partes mais importantes do Zend Framework 2, continuando com a tradução do manual do Zend Framework 2.

Veja neste tutorial a continuação da tradução do manual do Zend Framework 2

Módulos

Zend Framework 2 usa um sistema de módulos para organizar seu código específico do aplicativo principal dentro de cada módulo. O módulo de aplicação proporcionado por o esqueleto é usado para fornecer de bootstrap, e erro de configuração de encaminhamento de todo o pedido. É geralmente usado para fornecer controladores nível de aplicativo para, digamos, a home page de um aplicativo, mas nós não vamos usar o padrão fornecido neste tutorial como queremos que a nossa lista de álbuns para ser a home page, que viverá na nosso próprio módulo.

Nós agora queremos por todo o nosso código dentro do módulo Albúm nele irá conter, controllers, models, forms e views, ao longo de nosso desenvolvimento. Também vamos ajustar o módulo de aplicação, conforme necessário.

Bom vamos iniciar o desenvolvimento do módulo

Criando a estrutura de pastas

Vamos iniciar a criação dos módulos criando a estrutura do módulo Album dentro da pasta module., veja a estrutura abaixo:

zf2-tutorial/
     /module
         /Album
             /config
             /src
                 /Album
                     /Controller
                     /Form
                     /Model
             /view
                 /album
                     /album

Como você pode ver o modulo Album tem os diretórios separados por diferentes tipos de arquivos como nós podemos ver. Os arquivos PHP contém a classe Album como namespace dentro de src/Album o diretório pode ter multipolos namespaces ou módulos que você precisa. A pasta view também pode ter o sub pasta chama album para os módulos de view scripts.

Na ordem podemos carregar os módulos, no Zend Framework 2 temos o ModuleManager. Assim podemos ver o Module.php no diretório principal module/Album e podemos examinar a classe Album\Module. Ou seja, as classes dentro de um determinado módulo terá o namespace do nome do módulo, que é o nome do diretório do módulo.

Criaremos o arquivo Module.php dentro do módulo Album. No arquivo Module.php iremos adicionar o seguinte código:

namespace Album;

 use Zend\ModuleManager\Feature\AutoloaderProviderInterface;
 use Zend\ModuleManager\Feature\ConfigProviderInterface;

 class Module implements AutoloaderProviderInterface, ConfigProviderInterface
 {
     public function getAutoloaderConfig()
     {
         return array(
             'Zend\Loader\ClassMapAutoloader' => array(
                 __DIR__ . '/autoload_classmap.php',
             ),
             'Zend\Loader\StandardAutoloader' => array(
                 'namespaces' => array(
                     __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
                 ),
             ),
         );
     }

     public function getConfig()
     {
         return include __DIR__ . '/config/module.config.php';
     }
 }

 

O ModuleManager irá chamar o método getAutoloaderConfig() e getConfig() automaticamente.

Autoloading files

Nosso método getAutoloaderConfig() irá retornar um array que é compatível com Zend 2 AutoloaderFactory. Nós iremos configurar e adicionar o class map fule para o ClassMapAutoloader e também adicionaremos no módulo o namespace e o caminho do arquivo onde encontramos os arquivos que namespac. Essas são as regras do PSR-0.

Como estamos em desenvolvimento, não precisa carregar arquivos via ClassMap, por isso oferecemos um array vazio para o autoloader ClassMap. Crie um arquivo chamado autoload_classmap.php dentro da pasta zf2-tutorial/module/Album


 return array();

Como podemos ver a nossa array esta vazia, sempre que o autoloader olhar a classe com o namespace Album, ele irá retornar o StandardAutoloader para você.

Bom pessoal essa é um pequena parte da criação do módulo do álbum traduzido do manual do Zend.