Введение:
И так, для начала давайте определим, кто Вы: кто ещё не использует xdebug, или кто уже использует xdebug? Если Вы из первой группы тогда небольшая справка из вики: «XDebug — средство профилирования и отладки PHP скриптов. XDebug поставляется как расширение для PHP. Работает по протоколу DBGp». Используется во многих современных IDE, но если Вы, как и я используете текстовый редактор, то отладкой кода может превратиться в ад, в этом посте я попробую решить эту проблему.
Установка:
Давайте договоримся, что у Вас стоит windows с уже установленным XAMPP (разбирал установку/настройку на другом форуме, модераторы не баньте пж 😖).
Для начала скачиваем xdebug нужной версии. Это должен быть dll файл. Заходим в рабочий каталог XAMPP, у меня это C:\users\panda\xampp, но у Вас может быть другой. Находим в нём папку php с папкой ext, то бишь в моём примере должен получиться такой путь: C:\users\panda\xampp\php\ext, туда и кидаем php_xdebug.dll. Заходим обратно в каталог php и открываем php.ini. Находим директиву output_buffering и отключаем (если такой директивы нету, просто впишите строку ниже куда-нибудь):
output_buffering = off
Крутим файл в конец и добавляем:
[XDebug] ;Путь до dll файла zend_extension = "path" xdebug.remote_autostart = 1 xdebug.profiler_append = 0 xdebug.profiler_enable = 0 xdebug.profiler_enable_trigger = 0 ;Путь до каталога ...\xampp\tmp xdebug.profiler_output_dir = "path" ;xdebug.profiler_output_name = "cachegrind.out.%t-%s" xdebug.remote_enable = 1 xdebug.remote_handler = "dbgp" xdebug.remote_host = "127.0.0.1" ;Путь ...\xampp\tmp\xdebug.txt xdebug.remote_log = "path" xdebug.remote_port = 9000 ;Путь до каталога ...\xampp\tmp xdebug.trace_output_dir = "path" ;36000 = 10h xdebug.remote_cookie_expire_time = 36000
Теперь, вместо path нужно вставить реальные пути (над директивами написано какие нужны пути). Сохраняем, перезапускаем apache.
На этом всё, теперь мы имеем крутой var_dump() и улучшенный анализ ошибок.
Реклама #
Sonat 2 года назад #
Что значит 10 строка?
Почему она закомментирована? Другие закомментированные строки тут для объяснения о действиях в следующей строке, а вот что значит эта строка? Она просто лишняя? Или её раскомментировать?
Panda58dev 2 года назад #
Лишняя, её можно удалить 😅 Но вообще о настройке xdebug подробно можете почитать тут.
IamB 2 года назад #
Отладка — одно из основных повседневных занятий, того кто пишет, поэтому не стоит придавать этому процессу негативный оттенок. Ошибки входят в комплект развлечений© — вот, на мой взгляд, правильный подход.
Использую сейчас VSCode(точнее, VSCodium), не использовал и не собираюсь использовать XDebug, мне обычно хватает штатных сообщений об ошибках. Если вам не хватает вывода var_dump(), можете посмотреть на Kint или VarDumper Symfony.
Ну и наконец
Эффективнее, чем статические анализаторы кода, в этом плане инструментов нет.
Panda58dev 2 года назад #
Возможно :) Вам никто не запрещает юзать phpStan или любые другие инструменты, на мой взгляд xdebug-а вполне хватает для отладки небольшого кода. Когда кода очень много в любом случае буду использовать PHPStorm.
Evg 2 года назад #
XDebug — хорошее средство профилирование, если разобраться в этом. Да, сегодня есть другие инструменты, но XDebug по прежнему занимает ведущее место. Для многих он просто незаменим, чтобы посмотреть структуру проекта, найти слабые места. Если плагины под него. Можно анализировать любые цепочки. Это особенно имеет смысл когда занимаешься архитектурой. Мое мнение.