У меня проблема с тем, что я бился головой об стену с последних 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, и он кажется совершенно пустым. (Таким образом, запрос даже не был предварительно обработан). Есть что-то, чего я не понимаю?
Задача ещё не решена.
Других решений пока нет …