У меня есть три старых приложения (работающих на Symfony 2), каждое из которых было разработано в отдельных репозиториях git и настроено на соответствующих виртуальных хостах:
Несмотря на то, что они используют одну и ту же базу данных. Поэтому мы решили (Компания) объединить их все в одном приложении со структурой и подходом Symfony 4, главным образом, чтобы удалить большое количество дублированных данных и улучшить их обслуживание.
Сейчас я интегрирую все в одно приложение/репозиторий, как и планировалось, но начинаю решать некоторые проблемы с производительностью и структурой:
Поскольку у меня только одна точка входа index.php Я сделал два префикса маршрутов, чтобы иметь доступ к субприложению Company.com/admin/ и Company.com/api/, поэтому все маршруты загружаются каждый раз:(
Все пакеты и конфигурация загружаются и обрабатываются без необходимости для каждого запроса. Например: когда я получаю доступ к пути API, загружается SonataAdminBundle тоже
Команда очистки кэша занимает много времени.
Тесты не работают, и теперь их выполнение тоже занимает много времени.
Я хотел бы сохранить ранний виртуальный хост и загружать только необходимые пакеты и конфигурацию для каждого домена:
Я проверил текущий префикс хоста в методе Kernel::registerBundles() и загрузил только необходимые пакеты, но все равно у меня проблемы с файлом bin/console (он не работает, поскольку переменная HTTP_HOST не определена для CLI). Я хотел бы очистить кеш для каждого «подприложения» и так далее.
Я провел некоторое исследование по этой теме, но до сих пор не нашел ничего полезного для моего сценария (Symfony 4).
Можно ли в одном репозитории проекта работать независимо (например, отдельные приложения), но совместно использовать некоторую конфигурацию? Как лучше всего этого добиться?
У меня есть три старых приложения (работающих на Symfony 2), каждое из которых было разработано в отдельных репозиториях git и настроено на соответствующих виртуальных хостах:
[list] [*][code]company.com[/code] Веб-сайт компании. [*][code]admin.company.com[/code] Администрирование сайта. [*][code]api.company.com[/code] Служба API компании. [/list]
Несмотря на то, что они используют одну и ту же базу данных. Поэтому мы решили (Компания) объединить их все в одном приложении со структурой и подходом Symfony 4, главным образом, чтобы удалить большое количество дублированных данных и улучшить их обслуживание.
Сейчас я интегрирую все в одно приложение/репозиторий, как и планировалось, но начинаю решать некоторые проблемы с производительностью и структурой:
[list] [*]Поскольку у меня только одна точка входа index.php Я сделал два префикса маршрутов, чтобы иметь доступ к субприложению Company.com/admin/ и Company.com/api/, поэтому все маршруты загружаются каждый раз:( [*]Все пакеты и конфигурация загружаются и обрабатываются без необходимости для каждого запроса. Например: когда я получаю доступ к пути API, загружается SonataAdminBundle тоже :( [*]Команда очистки кэша занимает много времени. [*]Тесты не работают, и теперь их выполнение тоже занимает много времени. [/list]
Я хотел бы сохранить ранний виртуальный хост и загружать только необходимые пакеты и конфигурацию для каждого домена:
[list] [*][code]company.com[/code] Загружает пакеты, маршруты и конфигурации только для веб-сайта компании ([code]SwiftmailerBundle, ...) [*]admin.company.com[/code] Загружает пакеты, маршруты и конфигурацию только для администрирования сайта ([code]SecurityBundle[/code], SonataAdminBundlesetHost($request->server->get('HTTP_HOST'));
Я проверил текущий префикс хоста в методе Kernel::registerBundles() и загрузил только необходимые пакеты, но все равно у меня проблемы с файлом bin/console (он не работает, поскольку переменная HTTP_HOST не определена для CLI). Я хотел бы очистить кеш для каждого «подприложения» и так далее.
Я провел некоторое исследование по этой теме, но до сих пор не нашел ничего полезного для моего сценария (Symfony 4).
[b]Можно ли в одном репозитории проекта работать независимо (например, отдельные приложения), но совместно использовать некоторую конфигурацию? Как лучше всего этого добиться?[/b]