[Denwer, Xdebug , Notepad++] – полноценная среда разработки

Найдите ошибки в PHP-приложениях при помощи Xdebug
Существует много хороших редакторов кода для PHP, я выбрал для себя Notepad++.
Что-бы не разводить «религиозные войны» я перечислю те свойство редактора которые важны для меня:

  1. Скорость работы редактора
  2. Малый размер и возможность работы с флешки
  3. Подсветка текста и возможность сворачивания блоков, согласно синтаксису языка программирования
  4. Авто-завершение набираемого слова
  5. Одновременная работа с множеством документов
  6. Одновременный просмотр нескольких документов
  7. Динамическое изменение окон просмотра
  8. Автоматическое определение состояния файла
  9. Поддержка большого количества языков
  10. Выделение скобок при редактировании текста

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

Оказываетесь для него есть плагин DBGP plugin, который превращает Notepad++ в полноценную php IDE.

Дальше расскажу как «подружить» между собой Denver + Xdebug + Notepad++

  1. Скачиваем Денвер и устанавливаем у себя на компьютере, все просто. Для тех кто это делает первый раз, инструкция.
  2. Скачиваем Notepad++ и инсталлируем его.
  3. Запускаем Денвер в браузере набираем http://localhost/Tests/PHP5/index.php5 и смотрим версию php, у меня 5.2.4
  4. Скачиваем Xdebug, обратите внимание нужно скачать dll нужной версии под конкретную версию php
  5. Скаченую dll помещаем в папку путь\usr\local\php5\ext\, где путь (у меня C:\WebServers) -диск и папка куда вы установили свой Денвер
  6. В файле путь\usr\local\php5\php.ini дописываем следующие строчки
    extension=php_xdebug.dll
    
    zend_extension_ts = C:\WebServers\usr\local\php5\ext\php_xdebug.dll 
    
    xdebug.remote_enable = On
    xdebug.remote_autostart = On
    xdebug.auto_trace = On
    xdebug.remote_host = 127.0.0.1
    xdebug.remote_enable = 1
    xdebug.remote_handler = dbgp
    xdebug.remote_mode=req
    xdebug.idekey=default
    
    xdebug.profiler_enable  = 1
    xdebug.profiler_output_dir = C:\T\xdebug_prof\

    Обратите внимание, что C:\WebServers – нужно заменить на вашпуть, а
    C:\tmp\xdebug_prof\ – на папку где будет хранитьса ваши профайлы.

    Замечание:
    в название путе лучше отказаться от использование не латинских букв и спецсимволов.

  7. Перезагружаем Денвер, в браузере набираем http://localhost/Tests/PHP5/index.php5 и смотрим


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

    Вот очень хорошая статья «Найдите ошибки в PHP-приложениях при помощи Xdebug», о том как это расширение увеличивает ваш возможности поиска ошибок.
    Но наша цель IDE – продолжаем идти к ней…
  9. Скачиваем DBGP plugin и устанавливаем его в папочку C:\Program Files\Notepad++\plugins\ (ну или куда вы установили Notepad++)
  10. Залускаем Notepadd++, заходим Дополнение>>DBGp>>Config

    Замечание: после home должна идти имя папки, где лежат скрипты которые вы собираетесь дебажить
  11. После этого вроде вроде все должно работать, но у меня так и неполучилось стартовать debug сессию. Но не беда нас выручить плагин для ФФ -Xdebug Helper. Заходим по сылочки и устанавливаем в своем браузере.
  12. Ну вроде и все. Как все это работаем:
    • открываем файл со скриптом в Notepad++
    • ставим точку остановки
    • запускаем браузер с url – нашего проекта
    • активизируем Xdebug session – кликом по иконки (если она не активизирована)
      Замечание: после активизации сессии, нужно перегрузить страничку (F5)
    • Вываливаемся в Notepad++ и начинаем пошагово дебажить код :)

Комментариев: 21 на "[Denwer, Xdebug , Notepad++] – полноценная среда разработки"

  1. Павел says:

    Не знаю, у меня отладка не пошла, всё сделал как ты сказал, но после перезагрузки страницы выпадает сообщение – Unable to map filename: c:\WebServers\home\test1.ru\www\test.php(ip: 127.0.0.1 idekey: default) unix: 1

    В чём может быть причина?

  2. Игорь says:

    А не подскажите ли, аякс-скрипты можно на Денвере создавать? Ну, т.е., чтобы была передача информации между браузером и сервером. Я как-то пользовался Денвером, всё хорошо, в принципе, полноценный сервер, но вот аякс на нём не шёл… Можь, у меня просто руки кривые? Или настроить что-то нужно?

  3. Deeptan says:

    Блин ,жалко что сразу этот сайт не нашел. Знал бы – не пришлось бы столько времени тратить. Огрминое спасибо))))

  4. SmokE says:

    Хотелось бы что-то наваять в комментах креативного, но мысль не складывается, так что просто “зачОт”

  5. гринч says:

    Спасибо, вы своим текстом меня сильно выручили – давно искала эту информацию!!!

  6. AlexVol says:

    Мне очень понравилась статья. А еще есть что-нибудь в таком духе? Буду признателен за ответ)

  7. admin says:

    [quote comment="855"]Павел: в пункте 10 укажи c:\ вместо c:\WebServers\home\test1.ru\www\[/quote]
    Не совсем согласен, все зависит от того, где лежат php-файлы

  8. bulat says:

    У меня диз вашего блога в Опере расползается, а под FF всё в порядке. Оперой всё-таки много людей пользуются.

  9. admin says:

    [quote comment="1001"]У меня диз вашего блога в Опере расползается, а под FF всё в порядке. Оперой всё-таки много людей пользуются.[/quote]

    Тестировал под Opera 9.62, все корректно выводит

  10. darya says:

    Не нашёл контакты админа – хочу разместить рекламу.

  11. galaktion says:

    Смените плз шрифт на блоге. Приходится напрягать глаза. А пост – грамотный…

  12. admin says:

    [quote comment="1061"]Смените плз шрифт на блоге. Приходится напрягать глаза. А пост – грамотный…[/quote]

    Увеличить размер шрифта или семейство?

  13. admin says:

    [quote comment="1059"]Не нашёл контакты админа – хочу разместить рекламу.[/quote]

    Попробуй info[@]ajaxblog.ru $)

  14. Ikarushka says:

    Скачать dll файл по представленной в статье ссылки сейчас не получается. Берем этот файл от сюда: http://www.xdebug.org/docs/install

  15. Dima says:

    [quote comment="244"]А не подскажите ли, аякс-скрипты можно на Денвере создавать? Ну, т.е., чтобы была передача информации между браузером и сервером. Я как-то пользовался Денвером, всё хорошо, в принципе, полноценный сервер, но вот аякс на нём не шёл… Можь, у меня просто руки кривые? Или настроить что-то нужно?[/quote]

    Конечно все идет. У меня аякс работал на денвере ещё с 4-ой версии. Разберите простой пример где используется аякс, чтобы была возможность просто выловить баг.

  16. OvEL says:

    Статья очень полезная! Я всегда пользуюсь Notepad++, а про плагин не знал (но надежда на него краилась в глубине души моих программистких пальцах).

    p.s. Исправь в названии статьи «Denwer»

  17. Putnik says:

    Респект!
    А оно может переключаться между разными проектами? например, проект1 – на одном сервере, проект2 – на другом?

    Еще у NP++ есть такая замечательная вещь, как работа с файлами по фтп, т е. после ctrl-s не надо их ручками запихивать, файлы сразу на месте.

    про блог – размер шрифта бы побольше.

    • AjaxBlog says:

      >> А оно может переключаться между разными проектами? например, проект1 – на одном сервере, проект2 – на другом?

      Можно работать в разных вкладках или использовать сессию (когда можно сохранить расположение вкладок) переключаясь с одной сессии на другую.

      >> Еще у NP++ есть такая замечательная вещь, как работа с файлами по фтп, т е. после ctrl-s не надо их ручками запихивать, файлы сразу на месте.

      Есть плагин для Notepad++, как раз для этого – http://sourceforge.net/projects/npp-plugins/files/FTP_synchronize/

  18. Putnik says:

    и таки да, denWer а не denVer, от слова «web» :)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>