Как поделиться моделью Symfony2 с несколькими проектами

Мы создаем SaaS, который отслеживает определенные активы. Это означает, что он принимает данные, сохраняет их и отображает в веб-интерфейсе.

Для этого у нас есть несколько компонентов, которые мы создали с перемещением в Symfony2:

  • во фронтенд веб-приложение, где пользователи могут просматривать свои данные
  • во фронтенд административное веб-приложение, где мы создаем новые мониторы, пользователей и т.д.
  • API
  • приложение, которое извлекает полученные данные из очереди и помещает их в нашу базу данных (сейчас это отдельный скрипт, но я думаю переработать его как команду Symfony, которая вызывается cron)

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

Мой вопрос: как структурировать эти проекты в Symfony2?

  1. Создаю ли я отдельный пакет, в котором хранятся сущности для моей базы данных, и есть ли четыре проекта, включающие эти сущности, и работаю ли я с ними?
  2. Могу ли я создать "модельный" каталог в папке приложений Symfony, который используется всеми пакетами в каталоге /src?
  3. Какой-то другой, более чистый способ сделать это?

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

Вариант 2 кажется нормальным, так как папка /app в любом случае считается "общей" для всего, что находится в папке /src (так как, например, там также находятся параметры). Однако, там нет папки 'model' (модель), и я не уверен, что она должна быть?

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

Любой отзыв более чем приветствуется. Заранее спасибо,

Dieter

14
задан hakre 8 October 2011 в 13:28
поделиться