Опубликовано Оставить комментарий

Zend Framework 2 для начинающих: создание модуля

Создание модуля Zend Framework 2.4
Создание модуля Zend Framework 2.4

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',
         ),
     ),
 );
Добавить комментарий