Jul 21 2008

Контроль качества в PHP проектах — слайд от Sebastian Bergmann

Category: PHPIgor @ 23:57

Sebastian Bergmann разместил очень интересный слайд. Он также хорошо известен своей разработкой phpUnit . Текущая версия 3.3, в Milestone можно увидеть, что работает над 4-й версией, которая будет работать под PHP 5.3.


Jul 21 2008

PHP профайлер Xdebug

Category: PHP,ОтладкаIgor @ 23:11

Есть такой замечательный отладчик/профайлер Xdebug. Как для Windows так и для никсов.

Сайт разработчика: xdebug.org.

Что это такое это? Это расширение для PHP, которое работает как debugger и profiler. В настройках можно указать, что использовать, а что нет, можно все включить. Очень важные параметр xdebug.profiler_output_name, если его оставить по умолчанию, тогда вся отладочная информация будет записываться в один файл, а это бывает плохо, т.к. грузиться, например, страница, а с ней запускается 3- и больше файлов PHP: сама страница, Ajax, CSS, локализация. И в итоге в отладке будет последний файл. А так с помощью маски получаем уникальные файлы. В данном случае в таком виде: cachegrind.out.1208803760.D_home_demo-site_htdocs_sf_sandbox_web_index_php. В общем на офф. сайте можно найти подробнейшую помощь по Xdebug.

Подключение его в php.ini:

[Xdebug]
zend_extension_ts="php_xdebug-2.0.3-5.2.5.dll"
xdebug.default_enable = Off

xdebug.profiler_enable = Off ;Off
xdebug.profiler_output_dir = "/tmp/xdebug/cachegrid"
xdebug.profiler_append = On
xdebug.profiler_output_name = "cachegrind.out.%t.%s"

xdebug.auto_trace = Off
xdebug.trace_format = 0
xdebug.collect_params = 1
xdebug.collect_return = 1
xdebug.collect_includes = 1
xdebug.trace_options = 1
xdebug.trace_output_dir = "/tmp/xdebug/trace"

Программы для просмотра логов profiler:

  1. KCacheGrind — не юзал.
  2. WinCacheGrind — софтина под Винду, старая, апреля 2005 года. На её данные особо опираться не следует, т.к. информация относительная. Но общую картину дать может. Сам пользуюсь. Несколько раз показала интересные вещи, плюс помогла найти баги.
  3. CachegrindVisualizer — с офф. сайта. Это кроссплатформенная программа для визуализации файлов в формате Callgrind, в частности, его подмножества используемого Cachegrind. Профайлер Xdebug является совместимым с Cachegrind.
  4. Webgrind — Xdebug profiling c web frontend на PHP5. Все просто скопировал файлы, конфиг прочитался автоматом из настроек php.ini. Стоит только выбрать файл, и результат на экран. Минус — все написано на ПХП и если файл профайлера огромный, то будут тормоза.
  5. XDebugClient — это клиент для дебаггера, прослушает его и отображает у себя в консоли, только под Windows, не проверял.

Что можно почитать:


Jul 19 2008

Windows Apache под Symfony умирает

Category: SymfonyIgor @ 12:11

Почему такое возникает? Оказалось все дело в Xdebug — это модуль для отладки в PHP.

Решение:

  1. Отключить Xdebug
  2. Пропатчить один файл — собственно этот вариант меня больше удовлетворяет

Нужно патчить следующий файл: sfWebDebugLogger.class.php

Найти:

if ($this->xdebugLogging && function_exists('xdebug_get_function_stack'))

Заменить на :

if (false)


Предположение — не хватает памяти для Apache, не проверял, но может поможет.


← Предыдущая страница