Я ищу несколько рекомендаций по наилучшей практике создания структуры приложения Symfony 2.0. Если у меня есть несколько пакетов (Cart Bundle, Product Bundle, CMS Bundle), и я хочу использовать аспекты всех этих пакетов при составлении моей страницы, как мне лучше всего это сделать?Состав комплекта Symfony, как я могу структурировать свой код при использовании нескольких пакетов
Я могу представить себе два способа сделать это, но я ищу руководство, на котором (если есть) правильно.
1) Обозначьте все функциональные возможности моих пакетов через службы и используйте эти службы для непосредственного использования из ветки. Таким образом, я могу передать свой запрос на маршрутизацию в наиболее подходящий комплект (так http://myclient.org/User/Account) передается в пакет ClientUser для обработки, но базовый шаблон, который имеет мини-корзину покупок в навигации, имеет доступ к информации, которая ему нужна непосредственно изнутри twig (Мне не нужно это передавать)
2) Создайте пакет, который обращается ко всем другим связям, чтобы создать страницу (например, VendorFrontend или VendorBackend). Это означало бы, что все запросы маршрутизации будут переданы в этот комплект, и этот пакет получит доступ к необходимой информации для каждой части страницы перед тем, как перейти к шаблону.
Первый вариант кажется неправильным, потому что я не уверен, что даже можно позволить Twig потреблять услуги напрямую (хотя контейнер обслуживания)?
Второй вариант кажется неправильным, потому что это похоже на использование второго маршрутизатора, маршруты будут передаваться в пучок, который существует только для составления других пучков (здесь приведено, что этот комплект тесно связан с пучками, которые он использует). Несомненно, это противоречит концепции «пучка», что код повторно используется.
В этом примере я пытаюсь создать очень простой сайт e-com только для демонстрационных целей. У меня есть базовый шаблон, который будет иметь основную навигацию, мини-корзину, «тело» и нижний колонтитул. Я храню это в каталоге/app/Resources. Я планировал, что все остальные шаблоны наследуют это и переопределяют область «тело».
Не желая быть ложкой, просто подтолкнуть в правильном направлении. Благодарю.
Просто посмотрел вверх по первому вопросу. Ответ заключается в том, чтобы использовать подзапросы, где это необходимо, и расширять ветки, если это необходимо. Второй вариант, который я обсуждал выше, даже не является жизнеспособным вариантом, когда ваше приложение начинает расти. Он также ужасно связан с отдельными пучками. TL; DR. 1 – calumbrodie