Как вы отображаете вывод php в консоли phpstorm?

Как только отладчик (xdebug) включен в phpstorm, вы можете запустить свой php-скрипт (без отладки) из phpstorm.

Как вы просматриваете вывод скрипта в консоли phpstorms?

Я хочу увидеть вывод php до того, как он будет прочитан браузером - в основном то, что вы увидите, если нажмете «просмотреть исходный код» в браузере.

Вот видео разработчика Jetbrains. делает это (2 минуты: 05 секунд в видео) - он просто не объясняет, КАК настроить phpstorm для этого.


person Michael Coleman    schedule 17.07.2014    source источник
comment
Я ничего не вижу об HTML на 2:05 в этом видео   -  person LazyOne    schedule 17.07.2014
comment
отметил, я обновил вопрос, спасибо   -  person Michael Coleman    schedule 17.07.2014


Ответы (2)


В настоящее время в PhpStorm нет такой опции: показывать буфер веб-сервера (то, что было отправлено в браузер) при отладке веб-страницы (примечание: это должно работать ТОЛЬКО при отладке).

Такой вариант существовал очень недолго, около 4 лет назад (отдельная Script Output вкладка в окне отладчика: http://youtrack.jetbrains.com/issue/WI-2826). ).. но было довольно много проблем, и он был удален до правильной реализации.

http://youtrack.jetbrains.com/issue/WI-18214 --> http://youtrack.jetbrains.com/issue/WI-4466


В этом видео, особенно около 2:05, как вы предложили, выполняется обычный скрипт CLI (используется конфигурация запуска/отладки типа PHP Script), и поэтому ВСЕ такие выходные данные могут быть легко перехвачены (стандартный стандартный вывод ).

Со сценарием CLI это легко -- IDE здесь является родителем (тот, кто инициировал выполнение скрипта), поэтому вывод std можно легко собрать. Если вы выполняете сценарий веб-страницы в среде командной строки, вы получите свой HTML-код в обычном выводе консоли.

С веб-страницей это работает иначе (весь процесс): вывод скрипта сначала отправляется на веб-сервер (родительский), который, в свою очередь, отправляет его в браузер. Поскольку IDE не принимает непосредственного участия в выполнении скрипта, такой перехват может произойти только во время отладки, когда отладчик может отправить копию собранного вывода скрипта обратно в IDE.

person LazyOne    schedule 17.07.2014
comment
Понятно, спасибо, так что вывод интерпретатора php не является окончательным выводом, отправленным в браузер? Вывод php сначала отправляется на веб-сервер. (в данном случае apache), который затем производит вывод, отправленный в браузер? . - person Michael Coleman; 18.07.2014
comment
Правильный. Вот когда происходит сжатие на лету и т.д. - person LazyOne; 18.07.2014
comment
Спасибо. решено. Я бы проголосовал за, но у меня недостаточно очков репутации! - person Michael Coleman; 18.07.2014

Большинство веб-фреймворков буферизируют вывод перед отправкой результатов на веб-сервер. Чтобы просмотреть содержимое этого буфера, сначала вставьте точку останова в нужное место, затем, когда точка останова будет достигнута, перейдите на вкладку Отладка=>Консоль и выполните функцию ob_get_contents(). Буферизация вывода PHP поддерживает вложенные уровни, поэтому имейте это в виду при выборе точки останова. Очевидно, что если CMS/фреймворк не использует буферизацию вывода, то этот метод не применяется.

person ttk    schedule 13.06.2019