Содержание
Отладка PHP кода выполняется самыми разными способами. Можно выводить информацию на экран, с помощью die или var_dump, с помощью файлов журнала, в которые пишутся сообщения об ошибках и предупреждения. Плохо то, что почти все перечисленные методы вносят нарушения в шаблон страниц и сообщения достаточно трудно вычленять в потоке другой информации.
Почему бы не использовать один инструмент для всех скриптов (и PHP и Javascript)? Таким инструментом может стать консоль JavaScript, которую можно использовать и для отладки PHP кода. Консоль входит в набор разработчика, который присутствует практически во всех современных браузерах по умолчанию или доступен в виде удобного дополнения. Она предоставляет собой отличный инструмент для цветного вывода с номером строки и всем, что нужно. А кроме того, можно выводить значения массивов и целых объектов в консоль.
Конечно, есть браузеры, в которых консоль отсутствует (например, IE) и инструмент отладки может нарушить процесс выполнения приложения. Но мы позаботимся, чтобы все проходило отлично.
Вот класс, который выполняет всю работу:
Код достаточно простой и понятный. Основная идея заключается в генерировании JavaScript кода, который выводит значения переменных и сообщения в консоль. Очень просто и эффективно.
Код, который содержится в секции для браузеров без консоли, создает пустые функции-заглушки и браузер будет выполнять скрипт, несмотря на присутствующие вызовы записи сообщений в консоль.
Теперь посмотрим на пример использования. Ниже приведенный код используется в демонстрационной странице:
Чтобы увидеть действие кода, надо открыть консоль JavaScript в браузере и открыть/перегрузить демонстрационную страницу.
В браузерах без консоли в коде появятся элементы div с сообщениями, а код выполнится до конца без перерывов.
Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: www.codeforest.net/debugging-php-in-browsers-javascript-console
Перевел: Сергей Фастунов
Урок создан: 28 Марта 2011
Просмотров: 46844
Правила перепечатки
5 последних уроков рубрики "PHP"
Фильтрация данных с помощью zend-filter
Когда речь идёт о безопасности веб-сайта, то фраза "фильтруйте всё, экранируйте всё" всегда будет актуальна. Сегодня поговорим о фильтрации данных.
Контекстное экранирование с помощью zend-escaper
Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.
Подключение Zend модулей к Expressive
Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.
Совет: отправка информации в Google Analytics через API
Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.
Подборка PHP песочниц
Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.
var_dump и print_r выводятся в том месте страницы, где они вставлены в коде и приходится мотать страницу в поиске отладочной информации, а если отладку нужно производить на боевом сайте — то клиенты могут увидеть вашу «работу» по устранению неисправностей.
Реализации функции вывода отладочной информации PHP в консоль браузера
almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.
Пишем в лог:
Log::info("Vasya Super Start");
Слушаем логи в консоли:
$ tail -f storage/logs/laravel.log (или по дням)
Не знаток ларавель, но в других php-фреймворках, приложение, как привило, способно работать в только одном из двух режимов: WEB / CLI. Поскольку классическое php web приложение не является полнофункциональным веб-сервером, а запускается из-под apache / nginx.
Т.о. если вы пишете коснольное приложение, используя какой-либо фреймворк, то в нём и так всё будет выводиться на консоль по умолчанию — оно и запускаться будет из неё.
В общем случае, для web-приложения, это вряд ли возможно. Можно конечно используя логер (не знаю насколько он продвинут в ларавель) писать из веб- приложения логи в файл / сокет, а его уже читать / слушать из консоли.
https://laravel.com/docs/5.2/artisan#command-io по моему тут все описано, есть функции внутри команды вроде $this->info(), которые выводят сообщение непосредственно во время исполнения.
To send output to the console, use the line, info, comment, question and error methods.
$this->line(), $this->info(), $this->comment().