Разработка программной части сайта в Zend Framework, модули приложения

После установки стартового приложения от производителя или аналогичного от нашей студии можно приступать к разработке самого сайта. В принципе сайт уже будет открываться с тестовой страницей. Некоторый функционал, например, меню, или лента новостей во всех проектах работает примерно одинаково, поэтому разумно все это оформить в виде модулей, которые можно установить в папку vendor приложения консольной командой composer. Программисты студии «Мастер Флеш» разработали множество готовых к установке модулей, изменяя настройки можно изменить внешний вид или логику работы в небольших пределах. В папке vendor нельзя менять файлы, т.к. при последующих обновлениях файлы будут заменены новыми без какого-либо предупреждения. Если требуется существенно изменить логику работы любого модуля, то его нужно установить вручную в папку module - здесь можно менять файлы как угодно. Каждый модуль или просто пакет использует свое пространство имен (namespace), которое обеспечивает полную логическую изоляцию, т.е. мы внутри можем создавать объекты с любыми именами, систему пространства имен можно сравнить с древовидной системой папок вашего жесткого диска. Подробнее об этом можно почитать на сайте php.net.

Все готовые пакеты, которые устанавливаются командой composer могут быть либо модулями, написанными специально для Zend Framework или не являться таковыми. Для второго случая к элементам пакета можно обращаться стандартно, как принято в PHP, при этом сами файлы будут автоматически загружены. Для первого варианта, когда мы пишем специально для Zend Framework, мы остановимся подробнее.

Модуль для Zend Framework.

После установки стартового приложения, автоматически создается пустой модуль «Application», который мы можем дополнять новым функционалом.

Самый простой модуль состоит из папки, имя которой, как правило, является именем пространства имен, или его частью, например, наш пакет masterflash-ru/statpage, имя папки Statpage, а все пространство имен Mf\Statpage. Внутри папки src, размещаются все файлы с нашими скриптами, там же должен быть служебный файл module.php:

Обязательно имя этого модуля должно быть указано в файле конфигурации фремворка modules.config.php. Это нужно для того, чтобы в момент инициализации приложения недра фреймворка знали, что нужно считать файл modul.php и вызвать там некоторые методы, которые возвращают, например, конфигурацию - метод getConfig(),  или настраивают данный модуль. В этом файле не должно быть никакой бизнес логики, только конфигурация, и некоторые обработчики событий, оформленные в виде простых функций, которые автоматически будут вызываться при тех или иных событиях в жизненном цикле приложения.

Есть важное замечание, если мы добавляем в папку module новый свой модуль, то что бы загрузчик знал о его существовании нужно добавить его в файл composer.json нашего приложения, и выполнить composer update. После всего этого пакет можно использовать в проекте.

Итак, сегодня мы рассмотрели устройство стандартного модуля для Zend Framework, и как его внедрить в приложение.


Перейти к списку