#symfony
#symfony
Вопрос:
У нас есть служба, которая может быть вызвана из команды Symfony и из обычного веб-запроса. Есть ли способ узнать, была ли служба вызвана из команды или из веб-запроса? Если да, то если она была вызвана из команды, есть ли способ узнать параметры, которые использовались при выполнении команды?
Комментарии:
1. Как насчет добавления переменной, например
$isCalledFromCommand
, в службу, значение которой вы установилиtrue
, если она вызывается из команды? То же самое для параметров. Я думаю, что это самый простой способ2. Это кажется плохим дизайном. Если вы вызываете из command, используйте какой-то независимый ввод или, если выполняемые действия отличаются, используйте какой-то декоратор для базовых функций и фактических действий для веб-запроса и команды.
3. Нам просто нужно сделать это для отладки проблемы, это будет временная вещь, поэтому я действительно не хочу изменять всю архитектуру платформы
Ответ №1:
Привет, вы можете использовать это, чтобы узнать, используется ли служба из командной строки, если она работает с apache, вы получите это apache2handler
if(php_sapi_name() === 'cli') {
//some code
}
Ответ №2:
В консоли symfony,
контекст командной строки не знает о вашем виртуальном хостинге или доменном имени
Это означает, что вы можете проверить схему запроса, host, base_url и базовый путь, поскольку эти свойства запроса не имеют значений в контексте консоли, если вы их не настроите (https://symfony.com/doc/current/console/request_context.html#configuring-the-request-context-globally)