2015-07-30 4 views
6

После настройки XDebug мне удалось отладить php-файлы с прямым доступом к PHPStorm.Отладка Codeigniter с XDebug с использованием PHPStorm

Но недавно я начал работать с CodeIgniter, и я работал через this tutorial. Теперь мне было интересно, можно ли отлаживать определенные файлы MVC, например, controller.php. Поскольку после установки точки останова и начала отладки файла контроллера с помощью PHPStorm, он, конечно же, заявил: «Нет прямого доступа к скрипту», поскольку я напрямую обращался к скрипту.

И при доступе к файлу вручную, например, http://localhost:63342/01_codeigniter_tutorial/public_html/index.php/controller он просто показывает страницу 404 вместо обычного вывода, показанного, когда он не открывается с помощью PHPStorm.

Так что мне интересно, есть ли у вас специальная документация для чтения для отладки CodeIgniter или я просто неправильно ее обрабатываю?

+2

1) Откройте свой URL в обычном режиме. 2) Включите значок «дескриптор телефона» в PhpStorm (чтобы он начал прослушивать входящие отладочные подключения) и установил файл cookie xdebug в браузере (с использованием расширения браузера или определенного букмарклета); 3) Обновить страницу в браузере. https://confluence.jetbrains.com/display/PhpStorm/Zero-configuration+Web+Application+Debugging+with+Xdebug+and+PhpStorm – LazyOne

+2

* «вместо этого он отображает только 404 страницы» * Это потому, что вы используете PhpStorm's собственный * простой * встроенный веб-сервер, а не ваш Apache. Сервер PhpStorm не обрабатывает правила mod_rewrite (хорошие URL-адреса), поэтому их нельзя использовать для таких сайтов. – LazyOne

+2

Итак, общее решение: инициируйте запрос отладки вне/из браузера (добавив xdebug cookie или GET/POST параметры), используя любые URL-адреса, которые работают на вас, а не изнутри PhpStorm. – LazyOne

ответ

5

Благодаря LazyOne, который просветил меня в комментариях, я смог найти свои ошибки и решение.

Самая первая причина, по которой страница 404 была показана при просмотре сайта с помощью PhpStorm, заключалась в том, что я использовал встроенный веб-сервер PhpStorm, а не мой Apache. И указанный сервер не обрабатывает правила mod_rewrite (что упрощает URL-адреса), поэтому для сайтов с использованием CodeIgniter он не будет работать. И поскольку сценарии не доступны напрямую, это невозможно, просто щелкнув Run в PhpStorm. Поэтому мы должны инициировать запрос отладки из внешнего/веб-браузера.

Теперь 2 вещи должны быть сделаны:

  • PhpStorm (или ваш Предпочтительнее IDE) должен знать, что процесс отладки должно произойти
    • Использование PhpStorm вы должны переключить «Start Прослушивание кнопок отладки PHP ".
    • Подробнее в their documentation
  • При просмотре вашего сайта, как обычно (в моем случае локальный/01_codeigniter_tutorial/public_html/index.php/Controlle г) вы должны установить XDebug печенье так xdebug не будет автоматически запускать сеанс отладки при открытии скрипта.
    • Самый простой способ установить браузер надстройку на поскольку у вас есть только нажать на кнопку (я использовал самый простой XDebug для FF)
    • Read this для получения дополнительной информации

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

Смежные вопросы