Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 24.05.2017 01:26:03

Mail::queue и router

Здравсвуйте.
Когда письма записываются в очередь и из очереди пуляются по адресатам, я так понял, функция в шаблоне router() отдает адрес сайта, который указан в config/app.php. Но столкнулся с проблемой, что после того, как скрипт обработки очередей запущен, router() отдает старый адрес сайта, который был прописан в .env еще до запуска скрипта очередей. И сейчас делаю изменения в .env APP_URL, но с каждым новым письмом указывается старый адрес. Он(скрипт очередей) каким то образом закешировал себе APP_URL?
У меня задача менять динамически APP_URL для разных писем. Подскажите, как решить проблему.

Не в сети

#2 24.05.2017 12:56:43

Re: Mail::queue и router

если скрипт очередей настроен правильно – он не перечитывает не только настройки но и выполняемый код в пхп-файлах – об этом написано в документации с большой красной рамочкой. поэтому стандартно при деплое выполняется php artisan queue:restart от которого все воркеры дохнут и supervisord их перезапускает уже с новым кодом и новыми настройками

кроме того в продакшене кэшируются конфиги и соответственно всё что туда попало из .env – поэтому при деплое надо делать php artisan config:cache – он сбросит кэш конфигов и построит новый

если нужны разные настройки урл в разных письмах – посмотри на фасад \URL, он ведёт в \Illuminate\Routing\UrlGenerator – именно его используют все хэлперы, создающие url в приложении. его можно настраивать как из сервис-провайдеров, так и непосредственно перед вызовом тех или иных функций. в частности на нём есть метод forceRootUrl – он подменяет корень, заданный в APP_URL

Не в сети

#3 24.05.2017 16:43:44

Re: Mail::queue и router

Спасибо

Не в сети

Подвал раздела