config – Блог Stafox'a https://stafox.cc О программировании и веб-разработке Tue, 12 Sep 2017 08:54:51 +0000 en-US hourly 1 https://wordpress.org/?v=5.8.2 Установка и настройка 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
Исправляем Fatal error: Maximum function nesting level of 100 reached, aborting! https://stafox.cc/fix-fatal-error-maximum-function-nesting-level/ https://stafox.cc/fix-fatal-error-maximum-function-nesting-level/#comments Mon, 18 Nov 2013 14:22:32 +0000 http://stafox.ru/?p=2097 Буквально недавно во время одного из этапов тестирования выловили ошибку Fatal error: Maximum function nesting level of ‘100’ reached, aborting! Погуглив, понял что дело в конфигурации xdebug’a. И все было бы прекрасно, ведь описанное решение было очень простым. Нужно было лишь в php.ini задать значение параметра побольше, например 200. [php] xdebug.max_nesting_level = 200 [/php] Но

Сообщение Исправляем Fatal error: Maximum function nesting level of 100 reached, aborting! появились сначала на Блог Stafox'a.

]]>
Fatal error: Maximum function nesting level of 100 reached, aborting!
Буквально недавно во время одного из этапов тестирования выловили ошибку Fatal error: Maximum function nesting level of ‘100’ reached, aborting! Погуглив, понял что дело в конфигурации xdebug’a.

И все было бы прекрасно, ведь описанное решение было очень простым. Нужно было лишь в php.ini задать значение параметра побольше, например 200.

[php] xdebug.max_nesting_level = 200
[/php]

Но вот незадача: на сервере, на котором проводились тесты, xdebug не стоял. Поэтому нужно было решать проблему по-другому. Взглянув на строку, которая провоцировала проблему, я нашел решение.

Все дело было в модели, точнее в методе. Модели в данном приложении реализованы с применением паттерна “Active Record”, и наследуются от Zend_Db_Table_Abstract. Так вот, так вышло, что в модели уже был описан метод insert (точнее переопределен) – это и вызвало ошибку.

[php] class Default_Model_AccountRequest extends Zend_Db_Table_Abstract {

protected $_name = ‘account_requests’;

public function insert(array $_data){
return $this->insert($_data);
}

[/php]

Метод можно было смело удалять. Вот так.

Сообщение Исправляем Fatal error: Maximum function nesting level of 100 reached, aborting! появились сначала на Блог Stafox'a.

]]>
https://stafox.cc/fix-fatal-error-maximum-function-nesting-level/feed/ 4
Zend Framework: как включить отображение ошибок https://stafox.cc/zend-framework-enable-display-errors/ https://stafox.cc/zend-framework-enable-display-errors/#comments Sun, 06 Oct 2013 09:49:35 +0000 http://stafox.ru/?p=2074 При разработке проекта, крайне необходимо отображение всех ошибок и предупреждений. Если у Вас отображаются не все ошибки (к примеру ошибки ZF), и вместо контента Вы видите белую страницу, необходимо добавить следующие строки в файл конфигурации application.ini. [raw] phpSettings.display_startup_errors = 1 phpSettings.display_errors = 1 resources.frontController.throwExceptions = 1 resources.frontController.params.displayExceptions = 1 [/raw] Лучше добавить эти строки в

Сообщение Zend Framework: как включить отображение ошибок появились сначала на Блог Stafox'a.

]]>
Zend Framework: Как включить отображение ошибок

При разработке проекта, крайне необходимо отображение всех ошибок и предупреждений. Если у Вас отображаются не все ошибки (к примеру ошибки ZF), и вместо контента Вы видите белую страницу, необходимо добавить следующие строки в файл конфигурации application.ini.

[raw] phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.throwExceptions = 1
resources.frontController.params.displayExceptions = 1
[/raw]

Лучше добавить эти строки в раздел development.

[raw] [development : production] phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.throwExceptions = 1
resources.frontController.params.displayExceptions = 1
[/raw]

А для того, чтобы установить среду development можно в .htaccess добавить следующую строку:
[raw] SetEnv APPLICATION_ENVIRONMENT development
[/raw]

Сообщение Zend Framework: как включить отображение ошибок появились сначала на Блог Stafox'a.

]]>
https://stafox.cc/zend-framework-enable-display-errors/feed/ 2