Загрузка модулей, у которых есть несколько модулей в Zend Framework 2

вопросы

Поэтому я пытаюсь разделить свое приложение на несколько проектов модулей (каждый имеет свой собственный composer.json), тогда реальное приложение загрузит весь этот проект через композитор.

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

  • config / application.config.php
  • общедоступный / index.php

Пример модуля (зависимость - это то, что я пишу в массиве модулей в application.config.php):

  • UIModule
    • Зависимость: AssetManager, UIModule
  • CMSModule
    • Зависимость: UIModule, CMSModule
  • Модуль учета:
    • Зависимость: UIModule, AccountingModule

Теперь в моем последнем приложении скажем, что Мое заявление ему нужны как CMSModule, так и Бухгалтерский модуль, но я не могу написать только эти два модуля в application.config.php. Вместо этого я должен написать:

  • AssetManager -> это должно быть загружено UIModule
  • UIModule -> это должно быть загружено модулем CMS / Accounting
  • CMSModule
  • Бухгалтерский модуль

Мне нужно только записать эти два в Мое заявление

  • CMSModule
  • Бухгалтерский модуль

Это можно сделать? я думаю, чего этот парень хочет достичь в Динамическая загрузка модулей в Zend Framework 2

Примерно так я добавляю еще один дополнительный модуль. Загрузка модулей, у которых есть несколько модулей в Zend Framework 2

Вы ссылаетесь на вопрос, читали ли вы этот ответ и на этот вопрос? Вы пытаетесь использовать конфигурацию (все конфигурации объединены в 1 массив) для 1 приложения, как если бы это было более 1 приложения. Мой совет, основанный на вашем вопросе: создайте 4 приложения с перекрывающимися зависимостями (например, модуль пользовательского интерфейса и модуль аутентификации).

rkeet 13.03.2018 10:45

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

Wiryono Lauw 13.03.2018 14:09

Мой вам совет построить более 1 стендов для приложений. Ваш комментарий действительно звучит так, будто вам нужно 3 (?) Приложения, но не беспокойтесь о создании более 1. Если у вас есть приложения 1, 2 и 3, что мешает вам использовать все 3 модуля A, B и C. Если приложение 2 также использует модуль D, а приложение 3 использует модуль E. На самом деле легче поддерживать совместное использование модулей поставщика между приложениями, чем совместное использование приложений между модулями.

rkeet 13.03.2018 17:15

да, это то, чего я хочу достичь, каждый модуль будет разделен на каждого поставщика, поэтому я могу разделить его между разными разработчиками, и они не смогут легко сломать другой пакет при изменении. Но если требуется, чтобы модуль имел пользовательский интерфейс (представление), такой как форма и другой дизайн, а не просто служебную библиотеку, тогда нужно написать «приложение» для каждого модуля. Тогда пришла идея, давайте иметь один глобальный модуль приложения, который будет использоваться другим модулем в качестве представления, чтобы макет всегда был одинаковым.

Wiryono Lauw 15.03.2018 14:49
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
4
473
1

Ответы 1

Да, ваш макет - это то, что я получил в конце

However, you're hereby advised to use the module/ folder for application specific modules.

Как бы то ни было, я помещаю в папку для каждого конкретного пакета (стиль zf2)

  • ПАПКА ПАКЕТА
    • composer.json
    • Module.php (это для модульного теста php)
    • публичный (для пакета UI у меня есть это)
      • index.php
    • config
      • application.config.php (видимо нужно писать каждую версию для каждого пакета)
    • тесты
    • src
      • MODULE_NAME
        • актив
        • src
          • MODULE_NAME
            • Контроллер
            • Услуга
            • Модель
            • { Другой ... }
        • config
        • Посмотреть
        • Module.php

Спасибо за пояснение и ответ.

Другие вопросы по теме