Точное описание Symfony Bundle в сложном веб-приложении - PullRequest
9 голосов
/ 31 октября 2011

Я новичок во второй версии фреймворка Symfony.Я сделал несколько проектов с v1, но сейчас пытаюсь разобраться с новой версией и ее возможностями.Я перечитал концепцию Bundles, но ее цель еще не очень понятна для меня.

Скажем, у вас есть большое веб-приложение, например, CRM.Как будут выглядеть связки?Будет ли это NewsletterBundle (для отправки новостных рассылок), ContactManagementBundle (для управления контактами), UserBundle (для редактирования пользователей и их разрешений).

Или будет менее урезанным, как EmailBundle (для обработки всей электронной почты)трафик), CRMBundle (для ввода всего вашего кода CRM), PermissionsBundle, ApiBundle.

1 Ответ

20 голосов
/ 01 ноября 2011

Мне нравится думать об этом так: пакет должен представлять определенную функцию или набор похожих функций для проекта.

Ваш первый пример лучше использует пакеты, чем второй, потому что назначение каждого пакета более определено. Хотя можно использовать один CRMBundle для всего, на самом деле вы не воспользуетесь возможностью Symfony организовать ваш код. Кроме того, если вы хотите перенести код своей новостной рассылки в новый проект, но не всех кода CRM, вам будет проще копировать NewsletterBundle, чем копировать CRMBundle, а затем сокращать. это.

Когда вы думаете о проекте Symfony2, иногда вам хочется забыть все, что вы знаете о symfony 1.x, поскольку они используют совершенно разные подходы к решению многих проблем. Например, в symfony 1 было принято создавать приложение «frontend» и «backend» для проекта, и каждое приложение, очевидно, содержало бы логику, специфичную для этих частей проекта. Таким образом, у вас может быть контроллер информационного бюллетеня как во внешнем, так и во внутреннем приложениях. В Symfony2 лучше использовать только один пакет Newsletter, но с двумя контроллерами (возможно, с именами 'frontend' и 'backend'). Опять же, непосредственная выгода от этого заключается в том, насколько многократно используется ваш код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...