Как в Laravel определить, обрабатывается ли запрос?

У меня есть код, который можно вызвать либо с веб-сервера, либо из Tinker / рабочего / скрипта. Код должен определить, вызывается ли он с веб-сервера или нет.

Сначала я думал, что request () будет нулевым, если нет запроса, но это неправда. Затем я подумал, что запрос getHost или запрос getURI вернет null, если запроса нет, но это тоже неверно.

Есть ли элегантный способ определить, выполняется ли код в ответ на запрос? Я мог бы использовать промежуточное ПО, но это тоже кажется излишне сложным.

Лучшее решение, которое я мог придумать, - это проверить, содержит ли заголовок $ request-> ('User-Agent') "Symfony". Это кажется довольно хакерским.

app()->runningInConsole() может быть то, что вам нужно
DigitalDrifter 05.07.2018 22:33

Идеально! Дайте ему ответ, и я помечу его как ответ.

Dan Sandberg 05.07.2018 22:52
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
1
2
90
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать app()->runningInConsole(), чтобы проверить, был ли запрос получен через веб-сервер или через консоль.

Большой! «app () -> runningInConsole ()» возвращает true для тестов, скриптов и мастеров.

Dan Sandberg 06.07.2018 01:15

Другие вопросы по теме