Introdução ao primeiro módulo Blog

Publicado em 25 de Mar 2015.

Agora que sabemos o básico de Zend Framework 2 Skeleton Application, vamos continuar ea criar o módulo. Nos iremos criar um módulo com nome de "Blog". Neste módulo iremos listar os posts cadastrados no blog.

Iremos exibir no post as três propriedade id, text e title. Nos iremos criar formulário para cadastrar novos posts e editar nossos posts.Além disso iremos utilizar a melhorias práticas que foi utilizado no Quickstart.

Escrevendo o novo módulo

Vamos começar a criar o novo módulo, iremos criar uma nova pasta dentro da pasta /module com o nome de Blog.

Para o módulo ser reconhecido pelo ModuleManager é precisso criar a classe PHP com o nome de Module dentro do módulo com o namespace Blog. Criaremos o arquivo em /module/Blog/Module.php

<?php
namespace Blog;
class Module
{

 

Agora iremos que o nosso módulo foi detectado pelo ZF2s Module Manager. Iremos adicionar o módulo em nossa aplicação.Embora o nosso módulo não tenha nada, temos o arquivo Module.php classe que será carrega pelo ZF2s ModuleManager. Para isso adicionaremos a entrada Blog no módulo dentro da array de nossa aplicação /config/application.config.php

<?php
 // Filename: /config/application.config.php
 return array(
     'modules' => array(
         'Application',
         'Blog'
     ),

     // ...
 );

Configurando o Módulo

A próxima atividade que iremos fazer é adicionar a rota em nossa aplicação se você acessar a url sua-url.dev/blog irá ver que a página não foi encontrada. Para resolver esse problema iremos adicionar a rota na configuração do módulo, mas primeiro precisamos que o ModuleManager saiba que nosso módulo tem as configurações necessárias para ser carregada.

Com isso pronto podemos adicionar o método getConfig() em nossa classe Module que irá retornar a configuração. Essa função é definida dentro de ConfigProviderInterface  embora atualmente a implementação dessa interface dentro do módulo é opcional. Essa função deve retornar um array ou um objeto Traversable. Continuando a edição de nossa classe /module/Blog/Module.php:

Com o nosso módulo agora configurado. Configurando os arquivos ele podem se tornar muito grandes e manter dentro do getConfig() a função pode não ser muito otimizada. Para ajudar o projeto iremos organizar nosso array de configuração e separar o arquivo. Vá em frente e crie o arquivo /module/Blog/config/module.config.php

Agora iremos reescrever o método getConfig() iremos incluir a seguinte linha em nosso método

return include DIR . '/config/module.config.php';

Agora iremos adicionar o conteúdo dentro do arquivo module.config.php que irá definir a rota do nosso arquivo.

Nós iremos agora chamar o nosso módulo onde podemos encontrar o controle pelo nome Blog\Controller\List. Para arquivar isso nós temos que adicionar a chave para o controllers configurando dentro de sua chave /module/Blog/config/module.config.php