2

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

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

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

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

+0

Я думаю, что вы можете зависеть от инъекций, но я не знаю, как, если это возможно. – Flavius

+0

Возможно ли загрузить более одного модуля? Если это так, я мог бы написать основной модуль, содержащий глобальный материал. – danijar

+0

, если вы посмотрите на, например, Быстрый старт akrabat вы увидите, что загружается конфиг из всех модулей. поэтому, если у вас есть модуль «App» с макетом, то ваш модуль «FancyWebservice» будет использовать его автоматически, за исключением случаев, когда он решает переписать эту конфигурацию. для доставки клиентам вы не должны включать макет, поскольку они, вероятно, хотят использовать его. ссылка на https://github.com/akrabat/zf2-tutorial –

ответ

0

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

Первый пример у меня есть article of akrabat about module configuration and overrides.

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

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

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

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

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

Смежные вопросы