Поскольку наша компания начинает использовать Zend Framework в качестве базовой структуры для большинства наших проектов, мы хотим использовать некоторые общие элементы во всех наших проектах. Я говорю о таких вещах, как:
- Реализация модели (на основе doctrine2)
- RBAC для модели, включая пользователя, группу, ролевые модели
- Механизм создания шаблонов на основе xml для бэкэнд-интерфейсов ajax
- (вы называете это) ...
В принципе, все поставить «зенд на рельсы» и приступить к работе. Как лучше всего упаковать эти компоненты? Я вижу две возможности:
В виде модулей
Включаем необходимые функции отдельными модулями в папку модулей.
Pro:
- Мы можем устанавливать маршруты и выполнять код, что хорошо для многих модулей (воображаемый пример: модулю PayPal нужен какой-то URL-адрес обратного вызова. Если наш модуль может настроить его самостоятельно, настройка от «разработчика проекта» не требуется) .
- Мы можем предоставить реальную функциональность (например, администрирование пользователей) из коробки
- У нас есть бутстрап для настройки автозагрузки, доктрины и т. Д.
Против:
- Плохое место? Мешает проекту пользователей
- Немного сложнее делиться между проектами (подмодули git вместо пути к классам)
В папке библиотеки
Мы кладем его в папку библиотеки и указываем на него путь к классам.
Pro:
- Чистое решение
- Совместное использование в проектах
Против:
- Bootstrap должен быть явно вызван
- Никакой прямой маршрутизации или действий - все должно быть проксировано через конкретный проект
Итак, как решить эту проблему? Куда вы помещаете в zf многоразовые вещи общего назначения?