Вход Laravel/PHP в консоль/терминал без каких-либо сведений о типах и т. Д

#php #laravel

Вопрос:

Есть ли там sth. похоже на console.log() из javascript в php?

Проблема, которая у меня есть в laravel для e.x.

 error_log($request);
 

не работает, потому что $request не является строкой и т. Д.

https://laravel.com/docs/8.x/logging#introduction

Для меня это кажется слишком сложным для того, что я хочу заархивировать, честно говоря, я этого совсем не понимаю. Каков самый простой способ войти в laravel/php, не думая о типах и т. Д.

Может быть, есть библиотека, которую я могу установить и войти в терминал без второй, хотя и утомительной работы по настройке? может быть, расширение VSCode?

Комментарии:

1. В чем тут такого сложного ? Log::error($request) С конфигурацией по умолчанию в Laravel, в которую будет записан $request объект storage/logs/laravel.log

2. В конце концов, вам нужно где-то записать строку в журнал, и не все объекты, в широком смысле error_log(strval($request)); , должны работать, но не все объекты преобразуются в строки осмысленным образом. Некоторые объекты так и делают, для других имеет смысл использовать json_encode(..) их для преобразования в строки JSON. Не существует простого способа получить значимые журналы при работе с объектами.

3. Что такого сложного в Log::error($запрос)? Ничего, но мне придется открыть файл, использовать колесико мыши, чтобы добраться до конца, и горизонтальную полосу, получить массу накладных расходов… по сравнению с регистрацией javascript в php кажется довольно сложным. Я также пробовал этот подход, osi.коды/как-к-консольному журналу-в-laravel , но, похоже, он не работает.

4. error_log(strval($запрос)); ничего не показывает, кроме как в laravel.log, локально. ОШИБКА: Объект класса PayPalCheckoutSdkOrdersOrdersCreateRequest не удалось преобразовать в строку {«Идентификатор пользователя»:1,»исключение»:»[объект] (исключение ошибки(код: 0)… это хоть в чем-то помогает.

Ответ №1:

Не очень приятное решение, но так как вы хотите что-то похожее на консоль.журналы в javascript, вы можете изменить канал журнала в своем .env файле, чтобы указать, на stderr который в основном будут отправляться ваши журналы на консоль. Это было бы, если бы вы уже запускали приложение с php artisan serve помощью . Журналы будут отображаться в консоли или терминале, где вы выполняете команду приложения обслуживания.

Измените эту строку в .env LOG_CHANNEL=stack to LOG_CHANNEL=stderr

Это может быть не очень красиво, потому что все журналы будут отображаться на консоли, но я думаю, что это может быть то, что вы ищете.