Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

XDebug — если при отладке вам надоели echo(), var_dump() и print_r(). Часть 1.

Разработка веб-сайтов
XDebug — мощное расширение для отладки php-скриптов, которое написал норвежец Дерик Ретанс (Derick Rethans, www.derickrethans.nl, project leader for the eZ components). Работает как под Windows, так и под Linux, поддерживает версии PHP 4.4.1+, PHP 5.1.2+, PHP 5.2.1+.

Данное расширение предоставляет следующую информацию:
— стэк вызовов функций
— распределение памяти (memory allocation)
— профайлинг
— и т.п.
XDebug, в первую очередь, — хороший и легкий в установке профайлер, помогающий разработчику найти «узкие места» в коде, определить какие части вашего кода работают медленно: запросы к БД, подключение файлов, парсинг чего-либо и т.д.
Читать дальше →
Всего голосов 42: ↑37 и ↓5 +32
Просмотры4K
Комментарии 30

XDebug — если при отладке вам надоели echo(), var_dump() и print_r(). Часть 2.

Разработка веб-сайтов
Первая часть

Официальный сайт по проекту — www.xdebug.org
Параметры настройки, в скобках указана версия (например, Xdebug 2) — www.xdebug.org/docs-settings.php
Документация — www.xdebug.org/docs.php

Установка XDebug2 под Windows

1. Скачиваем расширение под нужную вам версию PHP:
PHP 4.4.1+
PHP 5.1.2+
PHP 5.2.1+
Читать дальше →
Всего голосов 8: ↑6 и ↓2 +4
Просмотры15K
Комментарии 24

Установка и настройка Apache2+PHP5+MySQL+XDebug & Eclipse+PDT+XDebug в Ubuntu 7.10

Настройка Linux
В этом топике я расскажу как установить и настроить Apache2 + PHP5 + MySQL + virtual hosts + xdebug, а также XDebug в Eclipse+PDT.
Читать дальше →
Всего голосов 45: ↑39 и ↓6 +33
Просмотры150K
Комментарии 96

Introducing xdebug

PHP
Перевод
Эта статья первая из серии статей, описывающих xdebug, свободной библиотеки для разработчиков PHP. xdebug – это расширение для PHP, написанное Derick Rethans, одним из разработчиков языка PHP. В данной статье описывается как установить xdebug и рассказывается о его базовых возможностях. В последующих частях мы детальнее взглянем на главные возможности xdebug, а именно трассировку, профайлинг, отладку кода.
Читать дальше →
Всего голосов 44: ↑42 и ↓2 +40
Просмотры44.8K
Комментарии 60

Tracing PHP Applications with xdebug

PHP
Перевод
Добро пожаловать во вторую серию нашего повествования про xdebug. Установка xdebug и его базовые возможности были рассмотрены в первой серии. В данной статье мы рассмотрим трассировку программы.
Предыдущая серия цикла Introducing xdebug
Читать дальше →
Всего голосов 19: ↑18 и ↓1 +17
Просмотры18.9K
Комментарии 16

Profiling PHP Applications With xdebug

PHP
Перевод
Добро пожаловать в третью статью о xdebug. Уже сейчас вы должны были попробовать xdebug, если нет, сделайте это сегодня ;-).
В первой статье рассказывалось о том, как установить и настроить xdebug, описывались некоторые простейшие возможности, такие как улучшение вывода функции var_dump() или вывод трассировки стека вызовов при получении сообщения об ошибке. Во второй части мы рассмотрели такую возможность xdebug как трассировку. Трассировка содержит все вызовы функций и методов в программе, время запуска, опционально размер памяти, передаваемые и возвращаемые параметры. Лог трассировки может помочь вам понять пути выполнения сложной программы. Вместо того чтобы вставлять отладочный код внутрь программы, вы включаете или выключаете трассировку в тем места где нужно, а потом используете утилиты подобные grep или собственно написанные приложения на PHP для анализа лог файла.
Читать дальше →
Всего голосов 23: ↑23 и ↓0 +23
Просмотры37.7K
Комментарии 17

Debugging PHP applications with xdebug

PHP
Перевод
Добро пожаловать на 4 часть повествования о xdebug. Сегодня мы попытаемся разобраться в отладке PHP кода с помощью xdebug. В данной статье мы полагаем, что вы уже давно установили xdebug на вашу систему, если нет первая статья серии опишет вам как это сделать.
Читать дальше →
Всего голосов 25: ↑24 и ↓1 +23
Просмотры43.1K
Комментарии 30

Нормальный debug в NetBeans

Чулан
В NetBeans, как и в Zend Studio For Eclipse,PDT есть отличная возможность — дебаг скриптов, как и в PDT, он реализован с использованием xdebug.
Как настроить xdebug я рассказывать не буду — на ХабраХабре уже была серия статей о использовании xDebug.
Вот только NetBeans обделена большим количеством настроек — мы можем указать как бинарник php, так и порт на котором работает xdebug. Единственное чего мы не можем указать — это какой следует использовать файл php.ini: при использований нескольких конфигураций php самостоятельно выбирает один из доступных файлов php.ini, что не очень хорошо.
Таким образом, мы должны как-то обойти эти ограничения, вот моё предложение: напишем такой скриптик:
[root@localhost infoSite]# cat /usr/bin/phpWithIni
#!/bin/bash
/usr/bin/php-5.2.5 --php-ini '/etc/php/5.2.5/apache2-mod_php/php.ini' -f $1

Вместо /usr/bin/php-5.2.5 напишите путь до бинарника php, а вместо /etc/php/5.2.5/apache2-mod_php/php.ini укажите адрес до нужного файла php.ini.

Теперь следует проставить праваchmod (+x и дать права на запуск требуемым пользователям), а в NetBeans указать вместо пути до php путь до этого сркипта.
Всего голосов 5: ↑5 и ↓0 +5
Просмотры1K
Комментарии 1

Удобное профилирование в Kcachegrind

PHP
открыл для себя ядерную фичу при профилировании с xdebug+kcachegrind) (для себя по крайней мере).
Вообщем нужно запустить дебаггер и остановить на первой строке, потом одновременно загрузить в kcachegrind файл, куда xdebug постепенно сливает результат профайлинга. Далее дебаггер нужно сдвинуть на след. строку, потом нажать «reload» в kcachegrind и вауля). Файл профилирования заново загружается и информация обновляется. Весь процесс работы php, шаг за шагом, виден в буквальном смысле как на картинке(вкладка call graph).
PS думаю, есть смысл прикрутить к этому делу анимацию и тогда процесс разработки вообще будет сравним с просмотром сериала)
PSPS негативным моментом была ошибка кэша kcachegrind(насколько я понял), что решилось корректированием файлов настройки в домашней папке.
Проверял на:
ОС Linux
Kcachegrind 0.4.6
Eclipse (PDT)
xdebug 2.0.0-2
Всего голосов 9: ↑4 и ↓5 -1
Просмотры6.5K
Комментарии 13

Затмение, лисичка и xdebug

PHP

Длинное и пространное вступление



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

Все мы знаем как улетучивается фан от ковыряния в работающем
спагетти-коде, что бы добавить туда что-то или убрать. Однако придя
на новое место мы, как известно, первое время задачи не выбираем. Со
своим нежеланием заниматься разбором старого плохого кода я начал
бороться в нескольких направлениях:

1. Психологическом: Стараюсь не злиться на того кто это написал, а
просто разбираюсь с тем как это работает. Не поверите, в области
висков от этого становится непривычно легко, лицо становится более
доброжелательным и код выглядит более понятным.

2. Организационном: Применяю краткую выжимку из GTD: а) собирай все,
б)перечитывай то что собрал в)делай это. У этого направления есть
также техническая сторона, но о ней не сегодня. Главное при
перечитывании (пункт б) не «возвращать» дела не приняв каких-либо
внятных решений по их дальнейшей судьбе. К слову «разобраться с этим
позже» это вполне внятное решение.

3. Техническом: Вот об этом направлении моего селфимпрувмента вы
сможете наконец прочесть после столь длинного и, как обычно у меня
получается, пространного вступления.
Читать дальше →
Всего голосов 23: ↑13 и ↓10 +3
Просмотры2.8K
Комментарии 16

JetBrains WebIDE — третья публичная сборка

PHP
Вышла третья предварительная сборка (номер 445) новой среды разработки для PHP — JetBrains Web IDE PHP developers edition.
В этой версии мы приняли во внимания пожелания пользователей (в том числе и фидбэк с хабра:) и добавили несколько новых функций — YAML, дополнение членов объявленных через теги PHPDOC @property и method, а также усовершенствовали дебаггер. Исправлено множество различных ошибок и серьезно улучшена производительность автодополнения в редакторе.

Загрузка новой версии с официальной страницы «программы ранней доступности» Web IDE.
Детальный список изменений — в блоге Web IDE.

UPD: Напоминаю всем что это даже не бета — мы просто демонстрируем над чем работаем. Вы главное пишите чего ВАМ в вашем любимом IDE не хватает и что вы больше всего цените — а мы позаботимся чтобы появилась достойная альтернатива!

YAML + structure PHPDOC completion
Всего голосов 36: ↑32 и ↓4 +28
Просмотры2.9K
Комментарии 220

JetBrains WebIDE — четвертая публичная сборка (#470)

PHP
Мы продолжаем нашу борьбу за идеальное IDE для PHP ^) Анонс предыдущей сборки на хабре подарил нам огромное количество информации и указал основные направляния для совершенствования. В этот раз мы сосредоточились на выведении типов, (авто)дополнении и производительности. Под «выведением типов» подразумевается определение типов переменных, выражений и функции на основе анализа кода (а не PHPDOC @аннотаций)

В этой сборке мы добавили:
— автоматическое выведение типов возвращаемых значений функций на основе анализа операторов return
— автоматическое определение фактических свойств класса и их типов путем анализа кода конструктора (см. скриншоты)
анализ функций
анализ конструктора
— автоопределение типов глобальных переменных без аннонаций
— полную поддержку аннотаций var и global
— автовызов дополнения после $ и ->
— дополние внутри PHPDOC @тегов (частично), $переменных (из следующей декларации) и видимых типов
— сокрытие __magic() методы при первом вызове (если есть другие члены класса)
— ограничили дополение внутри catch() подклассами Exception

Производительность улучшли, настолько насколько это возможно в экспериментальной версии. По мере приближения к релизу ей будет уделяться основное внимание.

Скачать Анонс Подробный список изменений

Приглашаем всех пробовать и продолжать дискуссию :)

UPD: в этом билде был найден серьезный баг — дополнение часто не срабатывает для классов не из текущего файла :((( уже исправлено — будет доступно на следующей неделе.
Всего голосов 71: ↑63 и ↓8 +55
Просмотры1.3K
Комментарии 197

JetBrains WebIDE — публичная сборка #500

PHP
Квест «идеальное IDE для PHP» продолжается :) За прошедшую с предыдущей сборки неделю стали доступны две наиболее востребованые фичи — PHPUnit и FTP, ну и конечно мы постарались исправить как можно больше ошибок.

IDE
— начальная версия поддержки удаленных хостов — пока что только FTP upload. (Планируется: открытие удаленного проекта, автосинхронизация, SFTP/SSL/всякие cloud storage). Находится в меню Settings — Deploy&Run.
— Новые удобные закладки (F11)

PHP
— начальная версия поддержки PHPUnit (пока только локальный запуск)
— добавлено выведение типов для переменной в «foreach(...)», элемента массива «array[...]» и тернарного оператора "?:"
— добавлены поиск использований (Ctrl-Alt-F7) и переименование (Shift-F6) для глобальных переменных
— исправлены поиск использований и переименование для статических членов класса
— исправлены различные ошибки форматирования кода и комментариев

Загрузка Анонс

FTP PHPUnit
Всего голосов 51: ↑41 и ↓10 +31
Просмотры1.1K
Комментарии 117

JetBrains WebIDE — публичная сборка #701 / немного о ZendCon'09 / кое что о неочевидных возможностях

PHP
И снова «идеальное IDE для PHP» от JetBrains ^) За прошедшее с предыдущей сборки время мы успели обзавестись официальным сайтом, посетить ZendCon'09 и наконец заняться обещанной оптимизацией производительности. Нашлось время и на несколько новых фич. Пока качается билд загляните под кат — кроме обычных подробностей там будет пара слов о ZendCon и о уникальных функциях платформы/WI.



Читать дальше →
Всего голосов 44: ↑40 и ↓4 +36
Просмотры1.2K
Комментарии 200

Инструменты для визуализации логов профайлера xdebug

PHP
Наверное многие php разработчики используют профайлер xdebug для поиска узких мест в приложениях. Но просто смотреть логи очень не удобно, поэтому были созданы инструменты для их визуализации. Об этих инструментах я и хочу коротко рассказать.

Webgrind

Webgrind это набор php скриптов, которые можно установить на локальный или удаленный веб сервер. Дальше все просто до неприличия — закачиваем файл лога и смотрим статистику.
image
Самый очевидный плюс Webgrind'а это кроссплатформенность и простота установки.
Показывает список функций которые вызывались, количество вызовов (Invocation Count), общеё время потраченное на вызов (Total Self Cost) и общее время потраченное на выполнение (Total Inclusive Cost).
Можно скрыть php функции. Можно перейти внутрь функции, чтобы увидеть развернутую статистику.
Читать дальше →
Всего голосов 47: ↑42 и ↓5 +37
Просмотры19.7K
Комментарии 26

Xdebug 2.1.0 beta1

Чулан
image
Спустя полгода с момента последнего релиза вышла новая бета-версия популярного продукта для отладки и профилирования Xdebug.
Так как эта новость почему-то обошла обошла хабр, я решил заполнить этот пробел.

Читать дальше →
Всего голосов 13: ↑8 и ↓5 +3
Просмотры213
Комментарии 7

Устранение неполадок xdebug с php версии 5.3

Чулан
Кто пользуется редактором Netbeans для разработки на PHP и установленая версия интерпретатора у него > 5.3, наверное, заметил, что при сеансах отладки не отображаются переменные в области редактора «Variables». Как уже писал пользователь @grey-one здесь, вышла бета-версия отладчика 2.1.0 (уже вторая даже). Для проверки я установил все это с svn (поскольку в macports до сего времени имеется только версия 2.0.5 без поддержки php5.3):

# cd /tmp
# svn co svn://svn.xdebug.org/svn/xdebug/xdebug/trunk xdebug
# cd xdebug
# phpize
# ./configure --enable-xdebug
# cp modules/xdebug.so /ваш/путь/к/расширениям


и добавить строчку к вашему ini-файлу:
zend_extension="/ваш/путь/к/расшИрениям/xdebug.so"


ну и перезагрузить сервер:
# /opt/local/apache2/bin/apachectl graceful


Пока бета, иногда заметил ошибки «Socket exception occured» при завершении сеанса отладки. Пользуемся на свой страх и риск:)

p.s.: спасибо пользователю Fragster за коррекцию

Привожу пример типичной настройки netbeans + xdebug
Читать дальше →
Всего голосов 13: ↑10 и ↓3 +7
Просмотры368
Комментарии 8

JetBrains PhpStorm (AKA WebIDE) — публичная сборка 94.335

PHP
В этой сборке вас ждут:

Новое имя. Два варианта Web IDE получили свои официальные названия: JetBrains WebStorm и JetBrains PhpStorm. Брендинг еще не закончен так что вы увидите знакомые белые сплэши и иконки WI в самых разных местах. Цель разработки остается прежней — идеальный инструмент для PHP/JS разработчиков и веб-дизайнеров.

Полностью настраиваемый PHP formatter – эта фича получила наибольшее количество голосов в трекере.
Читать дальше →
Всего голосов 41: ↑35 и ↓6 +29
Просмотры3.2K
Комментарии 108

XAMPP on Linux + Xdebug (Linux 64bit)

PHP
Итак, сегодня мне удалось поставить XDebug на XAMPP for Linux. Если у вас 32-битный Линукс, можете не читать оставшийся текст, для вас есть простое решение, и не одно, которое можно с легкостью найти в Сети.

О безумных благах дебаггера для ПХП даже не нужно рассказывать. На 64-битной висте/виндоус7 хдебаг никак не хотел работать (обваливалась виста; для семерки не было скомпиленной версии библиотеки)

Для тех, кто не знает:
XAMPP — пакет программ из apache+mysql+php+perl+proftpd+…
XDebug — библиотека для РНР. Позволяет отчищать от лажи скрипты на РНР. (В основном используют вкупе с IDE, например Eclipse+PDT. Позволяет расставлять брейкпоинты, отлаживать пошагово и смотреть содержимое переменных)

Если вы попали сюда из поиска, то вас мало интересуют мои приключения и поиски, поэтому сразу к делу.

Update: Дорогие будущие читатели, эта статья для вас, если:
* Вам часто нужно переключаться между разными конфигурациями веб-сервера (напирмер PHP4/5.2/5.3) или вы по другим причинам пользуетесь XAMPP под Линукс.
* Вам нужен XDebug
* У вас 64-битный Линух
* К моменту когда вы начнете читать этот пост не существует 64битного ХАМРР.

Остальные, можете не читать. Я не сравниваю ХАМРР с другими существующими решениями, просто он у меня есть, я с удовольствием пользуюсь. Я покопался в сети и не нашел решения для моей проблемы, поэтому решил поделиться с вами тут.

Читать дальше →
Всего голосов 15: ↑5 и ↓10 -5
Просмотры6.1K
Комментарии 10