Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Здравсвуйте.
Когда письма записываются в очередь и из очереди пуляются по адресатам, я так понял, функция в шаблоне router() отдает адрес сайта, который указан в config/app.php. Но столкнулся с проблемой, что после того, как скрипт обработки очередей запущен, router() отдает старый адрес сайта, который был прописан в .env еще до запуска скрипта очередей. И сейчас делаю изменения в .env APP_URL, но с каждым новым письмом указывается старый адрес. Он(скрипт очередей) каким то образом закешировал себе APP_URL?
У меня задача менять динамически APP_URL для разных писем. Подскажите, как решить проблему.
Не в сети
если скрипт очередей настроен правильно – он не перечитывает не только настройки но и выполняемый код в пхп-файлах – об этом написано в документации с большой красной рамочкой. поэтому стандартно при деплое выполняется php artisan queue:restart от которого все воркеры дохнут и supervisord их перезапускает уже с новым кодом и новыми настройками
кроме того в продакшене кэшируются конфиги и соответственно всё что туда попало из .env – поэтому при деплое надо делать php artisan config:cache – он сбросит кэш конфигов и построит новый
если нужны разные настройки урл в разных письмах – посмотри на фасад \URL, он ведёт в \Illuminate\Routing\UrlGenerator – именно его используют все хэлперы, создающие url в приложении. его можно настраивать как из сервис-провайдеров, так и непосредственно перед вызовом тех или иных функций. в частности на нём есть метод forceRootUrl – он подменяет корень, заданный в APP_URL
Не в сети
Спасибо
Не в сети
Страницы 1