Мы создаем SaaS, который контролирует определенные активы. Это означает, что он берет данные, сохраняет их и отображает на веб-интерфейсе.
Для этого у нас есть несколько компонентов, которые мы создали с /, переходим к Symfony2:
Все эти четыре приложения имеют одну и ту же модель : нашу основную базу данных, в которой хранятся все пользователи, мониторы и данные.
Мой вопрос: как мне структурировать эти проекты в Symfony2?
Вариант 1 кажется немного странным, поскольку для меня, по моему мнению, требуется маршрутизация, представления, контроллеры и т. Д. Использование его для объектов просто немного странно.
Вариант 2 выглядит хорошо, так как папка / приложение считается «общедоступной» в любом случае для всего, что находится в папке / src (поскольку, например, там также находятся параметры). Однако там нет «модели», и я не уверен, что это должно быть?
Я понимаю, что для Symfony 2 очень мало «лучших практик», так как это совершенно новый. Но я хотел посмотреть, есть ли какие-либо практики, более предпочтительные, чем другие, по вашему мнению.
Любая обратная связь более приветствуется. Заранее спасибо,
Dieter
То, что я сейчас делаю, – это первый вариант: создать отдельный пакет для ваших объектов. Вот где я храню светильники, сущности, формы и связанные с сущностью тесты.
У пакета нет необходимости иметь маршрутизацию, контроллеры, представления и т. Д. На самом деле я видел планку, и все, что она делает, это ресурсы корабля-css с ним, поэтому их можно легко использовать повторно в проектах.
Что касается добавления моделей в каталог приложения … Мне это не понравится. Я вижу каталог приложений как место, где должна быть вся конфигурация. Даже если вы можете переопределять представления в app/Resources
, всякий раз, когда я хочу переопределить что-то, я создаю новый пакет.
Я не использовал эту технику самостоятельно в приложении symfony2 реального мира, но это указатель, когда вы просили получить обратную связь.
Контейнер службы, похоже, является способом Smyfony2, чтобы предоставлять услуги глобально. Таким образом, в вашем случае объекты доступа к модели будут определяться как сервисы, как описано в предоставленной ссылке, а затем могут быть использованы из любого пакета.
Теперь, в каком пакете идут объекты службы? Мы можем поместить их в отдельный пакет, поскольку они распределены между другими пакетами. Тем не менее, я полагаю, что модель не была бы абсолютно симметричной для всех пучков, поэтому мы можем поместить общую модель в отдельный пучок и поместить узлы определенных объектов в сам комплект. Затем методы инъекций, обсуждаемые в приведенной выше ссылке, могут быть использованы для обеспечения полной модели, специфичной для каждого пучка.
Это, по-видимому, обеспечивает максимальную де-мутацию.
Меня тоже интересует любая обратная связь, так как это общий сценарий проектирования.
С уважением.