У меня есть проект SaaS Symfony2 со многими пакетами и глобальное соединение с базой данных, определенное в config.yml. Теперь скажем, что конкретный клиент хочет какую-то пользовательскую функциональность. Поскольку я хочу, чтобы он был интегрирован с моим основным проектом, я решил создать новый пакет с кодом, специфичным для этого клиента. Для этого пакета могут потребоваться некоторые новые таблицы базы данных, но поскольку они специфичны для этого клиента, я создаю с ними новую базу данных.symfony 2 define doctrine connection на комплект
Затем мне нужно определить новое соединение доктрины. Вместо того, чтобы поместить все настройки coninction в основной config.yml (который может стать довольно запутанным, если у меня есть 10 клиентов с конкретным пакетом), есть ли способ определить его в каком-нибудь файле конфигурации внутри клиентского пакета ?. Таким образом, я могу легко инкапсулировать весь код клиента и конфигурации внутри пакета
Я думаю, что это возможно с помощью компонента Component Injection componentnet и с использованием Pass Compiler Pass для создания нового подключения к базе данных, основанного на файле параметров, определенных в но я не уверен, как это сделать. Также мне нужно определить некоторых слушателей, связанных с соединением (Doctrine Extensions), что делает задачу еще сложнее.
Я думаю, что у меня будет только один «пакет клиентов», активный в каждом запросе, поэтому, возможно, я могу определить какое-то «клиентское» соединение, а затем изменить строку соединения во время выполнения? (Ну, в этом случае мне нужно обязательно загрузить только правильный клиентский пакет, основанный на субдомене или что-то в этом роде).
Благодарим за помощь.
Вы решили эту проблему в конце? Не могли бы вы объяснить, как вы это сделали? – Nis