Zend Framework - Sistema de Módulo
O Zend Framework fornece um sistema de módulo poderoso. O sistema de módulos possui três componentes. Eles são os seguintes -
Module Autoloader- Um Módulo Autoloader é responsável por localizar e carregar módulos de várias fontes. Ele pode carregar módulos empacotados comoPhar archivestambém. A implementação do Módulo Autoloader está localizada em myapp / vendor / zendframework / zend-loader / src / ModuleAutoloader.php.
Module Manager- Uma vez que o Módulo Autoloader localiza os módulos, o gerenciador de módulo dispara uma sequência de eventos para cada módulo. A implementação do Gerenciador de Módulo está localizada em myapp / vendor / zendframework / zendmodulemanager / src / ModuleManager.php.
Module Manager Listeners- Eles podem ser anexados aos eventos disparados pelo Gerenciador de Módulos. Ao anexar aos eventos do gerenciador de módulo, eles podem fazer tudo, desde resolver e carregar módulos até a realização de trabalhos complexos para cada módulo.
Sistema de Módulo Web MVC
O MVC Web Application no Zend Framework geralmente é escrito como Módulos. Um único site pode conter um ou mais módulos agrupados por funcionalidade. A estrutura recomendada para o módulo orientado a MVC é a seguinte -
module_root/
Module.php
autoload_classmap.php
autoload_function.php
autoload_register.php
config/
module.config.php
public/
images/
css/
js/
src/
<module_namespace>/
<code files>
test/
phpunit.xml
bootstrap.php
<module_namespace>/
<test code files>
view/
<dir-named-after-module-namespace>/
<dir-named-after-a-controller>/
<.phtml files>
A estrutura é a mesma discutida no capítulo anterior, mas aqui é genérica. oautoload_ files pode ser usado como um mecanismo padrão para carregar automaticamente as classes disponíveis no módulo sem usar o avançado Module Manager disponível no zend-modulemanager.
autoload_classmap.php - Retorna uma matriz de nome de classe e seu nome de arquivo correspondente.
autoload_function.php- Retorna um retorno de chamada PHP. Isso pode utilizar classes retornadas por autoload_classmap.php.
autoload_register.php - Registra o retorno de chamada do PHP que é retornado pelo autoload_function.php.
Esses arquivos de carregamento automático não são necessários, mas recomendados. No aplicativo de esqueleto, não usamos oautoload_ files.
Classe de Módulo
A classe do módulo deve ser nomeada Module e o namespace da classe do módulo deve ser Module name. Isso ajudará o Zend Framework a resolver e carregar o módulo facilmente. oApplication o código do módulo no aplicativo esqueleto (myapp), myapp / module / Application / src / Module.php é o seguinte -
namespace Application;
class Module {
const VERSION = '3.0.2dev';
public function getConfig() {
return include __DIR__ . '/../config/module.config.php';
}
}
O gerenciador de módulo Zend Framework irá chamar o getConfig() funcionará automaticamente e fará as etapas necessárias.