Я также новичок в Symfony и буду с интересом следить за результатами этого вопроса, но что бы это ни стоило, я думаю:
Комплект - это просто группа файлов, ресурсовPHP классы и методы, тесты и т. Д. Логика группировки может быть любой, какой вам нравится.В некоторых случаях действительно очевидно, что такое группировка и почему это было сделано - например, если бы я написал систему блогов для Symfony2 и хотел выпустить ее, я бы сделал ее в комплекте.Именно такой пример используется чаще всего в документации.
Но вы также использовали бы комплекты для всего, что хотели выпустить, как одну маленькую функцию.Скажем, например, этот пакет , который создает маршруты по умолчанию для всех ваших контроллеров.Это не полностью разработанный плагин / функция, такой как блог или форум, но это немного кода, который я могу легко импортировать в свой проект, он полностью отделен от всего остального, это пакет.
Наконец, вы также можете использовать пакеты внутри вашего проекта абсолютно любым способом, который имеет для вас смысл.
Мой взгляд на вашу конкретную ситуацию:
Быстро и просто:
MySite\MyCode
- выполняет свою работу, и, возможно, вы неУ нас нет логичного способа разбить код, который вы собираетесь написать.
Если между двумя сайтами есть еще несколько уникальных функций, и вы хотите выделить их для ясности:
MySite\SharedFeatures
MySite\Site1Features
MySite\Site2Features
Если вам действительно нравится все на своем месте, или если у вас есть комплекспроект, возможно:
MySite\MySiteMain
(общие функции и универсальный сборник, который не заслуживает отдельного пакета) MySite\News
MySite\Site1FeatureSomethingOrOther
MySite\Site2FeatureSomethingOrOther
Я определенно думаю, что вы хотите придерживаться логических групп кода - так что я думаю, что ваш пример "связывает Site1 \ News andSite2 \ News "и" MySite \ Site1News и MySite \ Site2News "- не лучший путь.Site1 и Site2 являются реализациями, поэтому создание отдельного пакета для каждой страницы новостей сайта может показаться мне неэффективным;вам нужно создать один новостной компонент и создать его для использования двумя различными способами.
Что касается вопроса о двух доменах, вы можете либо указать оба домена на один и тот же код, либо протестировать его в своем коде.для какого домена запрашивается, или вы можете извлечь две копии одного и того же кода и слегка изменить файлы конфигурации (это не обязательно нарушает идею DRY , потому что вы все равно отредактируете код водно место, затем обновите обе копии.)