Содержание


ModuleManager


ModuleManager, ZF2, Zend Framework 2, ЗФ2





Введение в систему модулей (Module System)

Zend Framework 2.0 представляет новый и мощный подход к модулям. Новая модульная система разработана для обеспечения максимальной гибкости, простоты и легкого повторного использования. Модуль может содержать все, что Вам необходимо: PHP код, MVC функционал, библиотеки, скрипты видов, шаблоны, «public»  информацию, такую как картинки, таблицы стилей, javaScript. Возможности просто безграничны!

Важно: Модульная структура ZF2 разработана таким образом, что бы предоставить разработичкам возможность создавать фундамент для своих приложений, свои собственные модули а так же новые модули, базирующиеся на уже написанных модулях.

Для лучшего понимания модульной структуры, возможно, для начала лучше почитать про EventManager.

 

Модульная система состоит из следующих компонент:

1) ModuleAutoloader - Zend\Loader\ModuleAutoloader автозагрузчик, который отвечает за размещение и загрузку классов модулей «Module» из различных источников.

2) ModuleManager -  ZendModuleManager\ModuleManagerпросто принимает массив имен модулей и цепочки последовательностей для каждого из них. Поведение модуля должно описываться исключительно с помощью слушателей, которые прикреплены к ModuleManager.

3) ModuleManagerListeners– Слушатели событий могут быть прикреплены к различным событиям ModuleManager. Они способны выполнять любые действия: от загрузки модуля до выполнения различных задач инициализации различных компонентов и самоанализа .

 

Важно: Имя модуля в Zend Framework 2 приложении должно совпадать с именем пространства имен (namespace) соответствующего модуля.

 

Рекомендуемая структура стандартного MVC-ориентированного модуля ZF2 выглядит следующим образом:

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>


Файлы autoload_*.php

 

1) autoload_classmap.php должен возвращать массив карты классов (classmap) парами имя(name)/filename(имя файла). Имя файла должно быть указано с помощью магической константы __DIR__.

2) autoload_function.php должен возвращать функцию обратного вызова, которая должна быть передана в spl_autoload_register(). Как правило, это функция использует карту возвращенную из autoload_classmap.php.

3) autoload_register.php должен регистрировать функции обратного вызова (callback). Обычно это возвращаемое значение из autoload_function.php

 

Эти три файла предназначены для обеспечения нормальной загрузки классов, находящихся в модуле без необходимости использования Zend\ModuleManager. Например, при использовании вне приложения ZF2.


Автор статьи: DuB