【问题标题】:How to debug magento files using Xdebug in eclipse如何在eclipse中使用Xdebug调试magento文件
【发布时间】:2013-08-03 05:07:25
【问题描述】:

我是使用 magento 的 xdebug 新手。当我在第一行放置断点时,它会在 index.php 处中断并继续正常。但是当我想测试登录功能或菜单导航时,我将断点放在“class Mage_Page_Block_Html_Topmenu extends Mage_Core_Block_Template”,但它并没有在这里停止并继续。那么我必须在哪里保留断点?我需要在 .phtml 文件中放置点吗?我不确定我必须放在哪里。那么任何人都可以帮助我使用magento进行调试。

【问题讨论】:

  • 放置断点的文件应该没有区别。 Xdebug 可以在执行 php 代码的每个文件中使用。我认为您的 xdebug 配置有问题,或者您的断点代码没有执行。尝试在你的 index.php 中添加一个,看看它是否被触发。
  • @SimonH 如果我在 index.php 中放置断点,则代码执行会在该点停止并仅在我按下 F5 按钮时继续。它适用于 index.php 并继续适用于 mage.php。在它停止调试之后。
  • 听起来 xdebug 设置正确。对于非 Eclipse 用户:F5 用于进入。如果您没有遇到异常,您应该会看到更多文件。调试完成后你的浏览器会显示什么?
  • 如果我在login.phtml中放置断点,在主页加载完成后,如果我点击登录链接,那么它只是加载登录页面。它并没有停在我被放置断点的地方。
  • 您确定您使用的是正确的主题吗?尝试在放置断点的位置放置 die() 语句以查找。

标签: magento magento-1.7 magento-1.5 magento-1.6


【解决方案1】:

如果您只是想使用 xdebug,我很抱歉这个答案!

你不会在 xdebug 上取得太大的成功,因为从我的角度来看,它的工作速度很慢。我建议使用

Mage::log($var)Mage::logException($var)

然后做一个

tail -f on var/log/system.logtail -f on var/log/exception.log

Varien_Object 类上,您可以使用Mage::log($product->debug()) 之类的内容来减少日志输出。您可能知道要调试的代码位置,这可能是最佳实践。

请确保您在 Magento 中启用了调试输出。

【讨论】:

  • 所以我们不能用 eclipse 调试我们的 magento 应用程序吗?
  • 当然可以。以防万一抛出异常,它会被 Magento 异常处理程序捕获。但这没有什么意义,因为您永远不会单步执行框架流程,而是在某个类或文件上进行调试。所以 Mage::log 绰绰有余,而且速度更快。
  • 是的,xdebug 会大大降低您的应用程序的速度。但它可以配置为仅在需要时使用 php.ini 中的xdebug.profiler_enable_trigger=1 激活。我没用eclipse所以不知道能不能用。
猜你喜欢
  • 2011-07-29
  • 1970-01-01
  • 2015-12-04
  • 1970-01-01
  • 1970-01-01
  • 2011-07-31
  • 1970-01-01
  • 1970-01-01
  • 2012-01-23
相关资源
最近更新 更多