Symfony — конфликт между избирателями

У меня проблема с тем, что я бился головой об стену с последних 3 дней (и исследование Google / stackoverflow не дало особого результата).

В настоящее время я поддерживаю приложение, разработанное другим разработчиком (первоначальный разработчик ушел). Приложение находится в Symfony 2.6. Внутри него есть логика, которая обрабатывает доступ через концепцию избирателя.
Логика приложения выглядит следующим образом: URL-адрес содержит имя клиента (приложения). Например, давайте назовем наш клиент ТЕСТ. URL будет: myapplication.com/Test
При доступе к этому URL-адресу есть EventListner (подключен по kernelRequest, 31), который получает запрос и привязывает клиента к контексту маршрутизатора. Вот:

if (!$event->isMasterRequest()) { return; }

$request = $event->getRequest();
$requestContext = $this->router->getContext();

if ($company = $request->attributes->get('company')) {
$requestContext->setParameter('company', $company);
}

Это в основном позволяет нам загружать сервис провайдеров, передавая аргумент

<argument type="expression">service('request_stack').getCurrentRequest().get('company')</argument>

Причина этого в том, что у нашего приложения есть своя собственная база данных (по умолчанию), и у каждого клиента есть своя собственная (поскольку они создаются сторонним ETL, мы имеем контроль только над сегментами этой базы данных).

Теперь определение избирателя в сервисе зависит от одного из этих провайдеров. Мы в основном получаем список возможных разрешений (карт) из базы данных клиента (они меняются в зависимости от клиента). К сожалению, в настоящий момент все это терпит крах. Я получаю сообщение об ошибке «Файл сопоставления не найден с именем …». Он пытается получить файл из файла сопоставления по умолчанию вместо папки сопоставления клиента.

Я «взломал» appdebugProjectContainer и добавил print_r () | die, чтобы полностью отобразить requestStack, и он кажется совершенно пустым. (Таким образом, запрос даже не был предварительно обработан). Есть что-то, чего я не понимаю?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]