Как установить во время выполнения глобальную переменную, которая видна для всего запроса? После входа в систему мне необходимо сохранить данные соединения с БД и подключиться к его базе данных во всех запросах (с помощью промежуточного программного обеспечения).
Я только что доказал $GLOBALS
PHP и app()->singleton()
Laravel, но в обоих случаях после запроса я теряю содержимое переменной. Почему?Как установить глобальную переменную для всех запросов в Laravel
И как я могу решить? Я не хочу помещать данные db в сеанс или кеш.
Почему вы храните сеанс базы данных? У вас есть отдельные базы данных для каждого пользователя или что-то еще? Есть ли причина, по которой вы не можете закрыть соединение db и повторно открыть его с каждым запросом? – Blakethepatton
Также стоит отметить, что глобальные переменные устанавливаются только во время выполнения, что означает, что они не являются постоянными между запросами. Кроме того, соединения с базой данных истекают после определенной степени бездействия и, если ваш код зависит от того, что это соединение остается в сети, вы, вероятно, столкнетесь с некоторыми проблемами. – Blakethepatton
Вам нужно сделать небольшое чтение в структурах приложений с несколькими арендаторами ... есть интересный пост в блоге об этом ... Он использует красноречивые области ... Взгляните, это может дать вам некоторое представление о том, как реализовать то, что вы хотите ... http://jkwl.io/application-architecture/2015/02/16/multi-tenancy-in-laravel5.html – Serge