ZF2: собственные значения по умолчанию для модульного приложения - PullRequest
2 голосов
/ 24 января 2012

Я хочу написать php-приложение с использованием Zend Framework 2 (пока только бета-версия 2).

Поскольку это будет набор из нескольких веб-сервисов, я решил разделить его на разные модули (с собственными базами данных).).

Перед тем, как начать писать первый модуль, я хочу написать код, который нужен каждому модулю.Например макет.Каждый модуль использует одну и ту же компоновку.Вот почему я хочу написать это глобально, чтобы улучшить процесс разработки отдельных модулей.

Как я могу предоставить значения по умолчанию для каждого модуля в целом?(например, макет, плагин, модель базы данных по умолчанию, ...)

1 Ответ

0 голосов
/ 04 февраля 2012

В ZendFramework2 конфигурации из всех модулей всегда объединяются. Кроме того, существует глобальная конфигурация, которая может перезаписывать конфигурацию модуля. Таким образом, включение модуля вендора приводит к конфигурации по умолчанию, которую вы можете и должны перезаписать с помощью вашей глобальной конфигурации. Глобальная конфигурация может состоять из нескольких файлов, что позволяет легко различать настраиваемые модули.

Первый пример, который у меня есть, это статья akrabat о конфигурации модуля и переопределениях .

Другим хорошим примером этого паттерна является быстрый старт Акрабата (https://github.com/akrabat/zf2-tutorial):

  • один модуль приложения, основанный на ZendSkeletonApp
  • один модуль Альбом, часть, которую вы на самом деле сделали.

В модуле приложения есть конфиг для базовой маршрутизации, настроены виды и макет В модуле Album есть только настройка для вещей, относящихся к Album (например, внедрение зависимостей), представление и маршрутизация используются из конфигурации App-modules.

Вы можете решить перезаписать этот конфиг отдельно для каждого модуля или глобально, в макете проекта по умолчанию ваши конфиги размещаются так:

/config/application.config.php базовая конфигурация
/config/autoload/*.config.php может использоваться для перезаписи модулей или конфигурации приложения (например, для локальной разработки)
/module/[your-module]/config/[your-module].config.php стандартная конфигурация вашего модуля
/vendor/[vendor-module]/config/[vendor-module].config.php модуль, который вы добавили, но у которого есть определения для внедрения зависимостей. если он использует, например, база данных, которую вы хотите перезаписать некоторые параметры в вашем /config/autoload/*

...