debug – Блог Stafox'a https://stafox.cc О программировании и веб-разработке Tue, 12 Sep 2017 08:54:51 +0000 en-US hourly 1 https://wordpress.org/?v=5.8.2 Zend Framework 2: Логирование с Zend\Log https://stafox.cc/zend-framework-2-logginge-with-zend-log/ https://stafox.cc/zend-framework-2-logginge-with-zend-log/#respond Sun, 01 Mar 2015 14:43:44 +0000 http://stafox.ru/?p=2405 Зачастую при отладке необходимо знать, что происходит коде в определенный момент времени. С этой задачей отлично справляется xdebug, однако есть задачи где одного xDebug’a не достаточно: например, Вы через Zend\Http\Client отправляете запрос на какой-нибудь action. Вот тут на помощь приходит логирование. В Zend Framework уже есть компонент предназначенный для логирования – Zend\Log. Кстати, в первой

Сообщение Zend Framework 2: Логирование с Zend\Log появились сначала на Блог Stafox'a.

]]>
Zend Framework 2: Логирование с Zend\Log
Зачастую при отладке необходимо знать, что происходит коде в определенный момент времени. С этой задачей отлично справляется xdebug, однако есть задачи где одного xDebug’a не достаточно: например, Вы через Zend\Http\Client отправляете запрос на какой-нибудь action. Вот тут на помощь приходит логирование.

В Zend Framework уже есть компонент предназначенный для логирования – Zend\Log. Кстати, в первой версии фреймворка он тоже присутствует.

Добавим в Module.php следующий код:

[php] public function getServiceConfig()
{
return array(
‘factories’ => array(
‘Zend\Log’ => function($sm) {
$logger = new \Zend\Log\Logger();
$writer = new \Zend\Log\Writer\Stream(‘./data/log/app.log’);
$logger->addWriter($writer);

return $logger;
},
),
);
}
[/php]

Пример использования:

[php] public function debugAction()
{
$logger = $this->getServiceLocator()->get(‘Zend\Log’);
$postData = $this->getRequest()->getPost();

$logger->info(‘[debugAction] Debug POST data:’);
$logger->log(\Zend\Log\Logger::DEBUG, print_r($postData , true));
}
[/php]

Сообщение Zend Framework 2: Логирование с Zend\Log появились сначала на Блог Stafox'a.

]]>
https://stafox.cc/zend-framework-2-logginge-with-zend-log/feed/ 0
Установка и настройка Xdebug https://stafox.cc/install-and-configure-xdebug/ https://stafox.cc/install-and-configure-xdebug/#comments Sat, 11 Jan 2014 16:28:23 +0000 http://stafox.ru/?p=2109 Есть очень хороший инструмент для отладки php кода – Xdebug. Сегодня я расскажу как его развернуть на своей машине, а также как настроить NetBeans IDE на работу с ним. Немного о Xdebug Основной целью расширения является максимально возможное упрощение отладки PHP-скриптов и добавление в разработку на PHP таких удобств, как точки останова, пошаговое выполнение и

Сообщение Установка и настройка Xdebug появились сначала на Блог Stafox'a.

]]>
install-and-configure-xdebug
Есть очень хороший инструмент для отладки php кода – Xdebug. Сегодня я расскажу как его развернуть на своей машине, а также как настроить NetBeans IDE на работу с ним.

Немного о Xdebug

Основной целью расширения является максимально возможное упрощение отладки PHP-скриптов и добавление в разработку на PHP таких удобств, как точки останова, пошаговое выполнение и наблюдение за выражениями, которое мы привыкли видеть только в компилируемых языках программирования.

Помимо этого, расширение позволяет выполнять профилировку приложения и находить те части, которые замедляют его работу. Поддерживается также выполнение произвольного кода на точке останова. Xdebug стилизирует вывод ошибок, благодаря чему, читать ошибки становится гораздо удобнее. Кроме того, есть возможность самому указать, что будет выводиться при ошибке. На этом список возможностей не заканчивается, уж поверьте, у Xdebug также есть ряд других полезных при отладке функций.
В целом, расширение нужно, в первую очередь, для экономии времени разработчиков, так как позволяет быстрее локализовать ошибку в коде.

Установка Xdebug

Уже довольно давно Xdebug, как расширение для php, присутствует в репозиториях. Поэтому его установка очень проста, для этого введите в консоли следующую команду.

sudo apt-get install php5-xdebug
Внимание! Пример приведен для Linux Ubuntu и ему подобных. Команду следует выполнять с правами супер пользователя (su, sudo).

С установкой покончили. Перейдем к настройке.

Настройка Xdebug

Настройка расширения выполняется при помощи редактирования конфигурационных ini файлов. Тут есть два пути:
1. В php.ini создаем секцию [xdebug] и в ней задаем параметры.
2. Все параметры задаем в xdebug.ini, который хранится тут /etc/php5/conf.d/xdebug.ini
Тут решать Вам и только Вам.

Куда писать – определились. Определимся что писать?
Давайте я приведу список настроек, и поясню, что они означают:
[php] [xdebug] xdebug.default_enable = On; включить xdebug по умолчанию
xdebug.var_display_max_depth = 6; глубина показа дампа массивов и объектов
xdebug.remote_enable = On; включить удаленную отладку
xdebug.remote_host = 127.0.0.1; хост для удаленной отладки
xdebug.remote_port = 9000; порт для удаленной отладки
xdebug.remote_handler = dbgp; протокол для отладки
xdebug.idekey = netbeans-xdebug; идентификатор, который будет отправлять наша IDE
xdebug.remote_autostart = 1; автоматический запуск отладки
xdebug.remote_log=/tmp/xdebug/xdebug.log; лог-файл для удаленной отладки
xdebug.profiler_enable_trigger = 1; запускать профилирование по триггеру
xdebug.profiler_enable = 0; включить профилирование
xdebug.profiler_output_dir = /tmp/xdebug/profiler/; директория для хранения результатов профилирования
xdebug.show_local_vars = 1; отобразить все локальные переменные в случае возникновения ошибки
xdebug.overload_var_dump = 1; включает усовершенcтвованный var_dump
[/php]

После, необходимо чтобы наши изменения подтянулись.
Для этого нужно перезагрузить apache или php-fpm (в зависимости от того, что Вы используете).

Чтобы убедиться, что все хорошо, выведите
phpinfo();
Если такой текст имеется – значит все отлично:

This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
with Xdebug v2.1.0, Copyright (c) 2002-2010, by Derick Rethans

Теперь проверим улучшенный var_dump:
[php] $object = new stdClass();
$array = array(1, ‘var_dump test’, 4 => $object);
var_dump($array);
[/php]

Вы должны увидеть красивый стилизированный вывод содержимого массива.
Теперь создадим ошибку (забудем ; в конце строки)
[php] echo ‘Xdebug’
[/php]

Вы должны увидеть подробное сообщение об ошибке, представляющее собой таблицу.

Если по какой-то причине, это не произошло и Вы видите на экране html теги, вероятно необходимо изменить значение параметра html_errors = On; в php.ini

Настройка PhpStorm

Прочитайте статью как настроить Xdebug в PhpStorm.

Настройка NetBeans IDE

Устанавливаем NetBeans, если он еще не установлен. Заходим в СервисПараметры. Переходим в меню PHP, далее вкладка Отладка (Debugging).
И указываем следующие значения.
Порт отладчика: 9000
Идентификатор сеанса: netbeans-xdebug
Хочу отметить, что порт сеанса, как и идентификатор сеанса могу быть другими. Например, можно указать идентификатор ide-xdebug, но тогда и в конфигах Xdebug придется указать такое же значение.

Помните! Если Вы используете php-fpm, с настройками по умолчанию, то порт 9000 у Вас может быть занят.

Остальные параметры настраиваем под себя.

Ну, а о том, как выполнять отладку – в другой раз.

Сообщение Установка и настройка Xdebug появились сначала на Блог Stafox'a.

]]>
https://stafox.cc/install-and-configure-xdebug/feed/ 13