Zend Framework — фреймворк, построенный на принципах независимых компонентов и модульности. Как отдельные компоненты позволяют решать отдельные задачи, так и в веб-приложении на фреймворке модули несут свою ответственность при работе приложения. Создание простого модуля ZF2.4 — процесс несложный. Структура папок чаще всего похожа на ту, что указана в руководстве пользователя по созданию модулей.
Zend Framework создание модуля
Структура папок отдельного модуля может различная, но руководство предлагает решение-заготовку. Папки модуля содержат контроллеры, конфигурационные файлы, модели, представления и доп. файлы проекта.
zf2-tutorial/ /module /Album /config /src /Album /Controller /Form /Model /view /album /album
Модуль приложения для работы с альбомами содержит указание на пространство имён, перечень используемых компонентов, указываются реализуемые интерфейсы, стандартные методы модуля (в рамках ZF2.4)
getAutoloaderConfig()
и getConfig()
. Первый возвращает массив элементов, совместимых с AutoloaderFactory, а второй просто загружает данные из файла config/module.config.php
.
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'; } }
После создания нового модуля в приложении, нужно не забыть подключить его в
//config/application.config.php return array( 'modules' => array( 'Application', 'Album', // <-- Add this line ), 'module_listener_options' => array( 'config_glob_paths' => array( 'config/autoload/{{,*.}global,{,*.}local}.php', ), 'module_paths' => array( './module', './vendor', ), ), );