使用PHPStorm和XDebug调试Codeigniter代码

6
在设置了XDebug之后,我成功地用PHPStorm调试了直接可访问的php文件。
但最近我开始使用CodeIgniter,并通过这个教程学习。现在我想知道是否可以调试特定的MVC文件,例如controller.php。因为在使用PHPStorm调试控制器文件时,当然会出现“禁止直接访问脚本”的提示,因为我直接访问了脚本。
而手动访问文件时(例如http://localhost:63342/01_codeigniter_tutorial/public_html/index.php/controller),它只显示404页面,而不是通常在没有使用PHPStorm打开它时显示的输出。
所以我想知道,是否有一个特定的文档可以阅读来调试CodeIgniter,或者是我的操作方法有误?

2
  1. 以正常方式打开您的URL
  2. 在PhpStorm中启用“电话句柄”图标(这样它就会开始监听传入的调试连接),并在浏览器中设置xdebug cookie(使用浏览器扩展或特定的书签工具);
  3. 在浏览器中重新加载页面。 https://confluence.jetbrains.com/display/PhpStorm/Zero-configuration+Web+Application+Debugging+with+Xdebug+and+PhpStorm
- LazyOne
2
这是因为您正在使用 PhpStorm 自带的简易 Web 服务器而不是 Apache。PhpStorm 的服务器无法处理 mod_rewrite 规则(美化 URL),因此不能用于此类网站,只会显示 404 页面。 - LazyOne
2
因此,总体解决方案是:通过在浏览器外部/之外(通过添加xdebug cookie或GET / POST参数)使用适合您的任何URL来启动调试请求,而不是从PhpStorm内部启动。 - LazyOne
感谢您的快速回复和澄清!您的答案完美地解决了我的问题。我应该将您的答案添加为解决方案吗? - Elektropepi
当然可以 -- 只需描述需要哪些步骤 -- 这对于处于相同情况的其他用户将会很有用。 - LazyOne
1个回答

7

感谢LazyOne在评论中的启发,我找到了我的错误和解决方案。

使用PhpStorm浏览网站时,出现404页面的第一个原因是我使用的是PhpStorm内置的Web服务器而不是Apache。该服务器无法处理mod_rewrite规则(简化URL),因此对于使用CodeIgniter的网站,它不起作用。由于脚本无法直接访问,因此无法通过在PhpStorm中单击运行来实现。因此,我们必须从外部/ Web浏览器启动调试请求。

现在必须完成两件事:

  • PhpStorm(或您喜欢的IDE)必须知道即将发生调试过程
    • 使用PhpStorm,您必须切换“开始监听PHP调试连接”按钮。
    • 他们的文档中查看更多信息
  • 当像平常一样浏览您的网站时(在我的情况下为 localhost / 01_codeigniter_tutorial / public_html / index.php / controlle r),您必须设置 XDebug cookie ,因为xdebug不会自动启动调试会话当您打开脚本时。
    • 最简单的方法是安装浏览器插件,因为您只需单击按钮(我使用了The easiest XDebug for FF)
    • 阅读此文档以获取更多信息

设置完成后,您只需要刷新页面,IDE应该会收到您的调试请求。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接