Magento - 在 Netbeans 中调试 phtml 文件


Magento - Debug phtml file in Netbeans

也许这个问题以前被问过,但我在任何地方都找不到。我是Magento/Netbeans的新手。

在 Netbeans 中设置 xdebug 后,我可以通过停止索引中的一行来开始调试.php例如,对于这一行:

Mage::run($mageRunCode, $mageRunType);

我可以在哪里检查$mageRunCode和$mageRunType的值。

但是,在 .phtml 文件中设置断点后,该过程将运行断点,而不会停止。例如,在文件 ''default''template''catalog''product''list.phtml 中,我在 (我想单步进入 getPriceHtml() 函数):

<?php echo $this->getPriceHtml($_product, true); ?>

我什至在函数中设置了一些断点

public function getPriceHtml($product, $displayMinimalPrice = false, $idSuffix = '')

在摘要.php,但它也没有停止。

那么,我需要做什么才能让调试过程在 Netbeans with XDebug 中的任何断点处停止呢?

可以在 phtml 文件中的断点处停止,我一直这样做。
可能发生的情况是,放置断点的代码未执行。list.phtml文件管理网格和列表视图模式:也许您将断点放在网格部分中并正在监视列表视图,反之亦然。或者,也许您不在正确的模板中:可以肯定的是,启用模板提示并检查文件的路径。
至于Mage_Catalog_Block_Product_Abstract::getPriceHtml()也许它被其他类覆盖了。

对于 list.phtml 文件(当您确定它是正确的文件时,cfr 模板提示),我的建议是在第一个 php 行放置一个断点,在 1.7.0.2 版本的本机文件中,它将是第 35 行:

$_productCollection=$this->getLoadedProductCollection();

当你到达那里时,使用"步过(F8)"功能,直到你到达你想要检查的行,即<?php echo $this->getPriceHtml($_product, true) ?>,在那里你可以"步入(F7)"它,你将直接进入实际功能。