2014-12-02 4 views
1

Возможно, этот вопрос задан раньше, но я не могу его найти нигде. Я новичок в Magento/Netbeans.Magento - файл Debug phtml в Netbeans

После настройки XDebug в Netbeans, я был в состоянии начать отладку, остановив на линии в index.php, скажем, для этой линии:

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

Где можно проверить значение $ mageRunCode и $ mageRunType.

Однако после настройки точки останова в файле .phtml процесс проходит через точку останова без остановки на нем. Например, в файле \ умолчанию \ шаблон \ каталог \ продукт \ list.phtml, я поставил точку останова (я хочу уйти в getPriceHtml() функции):

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

Я даже установить некоторые контрольные точки в функция

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

в Abstract.php, но это тоже не остановилось.

Итак, что мне нужно сделать, чтобы процесс отладки остановился на любых контрольных точках в Netbeans с помощью XDebug?

+0

Я начал использовать Step-Over для продолжения отладки в Magento. Оказалось, что процесс отладки фактически вышел из функции: protected function _checkBaseUrl ($ request) {... exit;} до того, как веб-страница была отображена. Итак, правда ли, что невозможно пропустить коды для любых файлов шаблонов .phtml в Magento с NetBeans или без них? – umage

ответ

1

Можно остановить в точках прерывания в файлах phtml, я делаю это все время.
Что может случиться, так это то, что код, в который вы положили точку останова, не выполняется. Файл list.phtml управляет как сеткой, так и режимами просмотра списка: возможно, вы поставили точку останова в части сетки и наблюдали за просмотром списка или наоборот. Или, может быть, вы не в правильном шаблоне: обязательно, включите подсказки шаблона и проверьте путь к файлу.
Что касается Mage_Catalog_Block_Product_Abstract::getPriceHtml(), возможно, это переоценено каким-либо другим классом.

Мой совет, для файла list.phtml (когда вы уверены, что он правильный, подсказки шаблонов cfr), заключается в том, чтобы поставить точку останова на первой строке php, в собственном файле версии 1.7.0.2 это быть строка 35:

$_productCollection=$this->getLoadedProductCollection(); 

и когда вы там использовать «Step Over (F8)» функции, пока не достигнет линии, которую вы хотите проверить, то есть <?php echo $this->getPriceHtml($_product, true) ?>, и вы можете "Step Into (F7) «он и вы получите прямо к фактической функции.

HTH

+0

OSDave, спасибо за ответ! Таким образом, вы можете отлаживать Magento в Netbeans. – umage

+0

OSDave, спасибо за ответ! Таким образом, вы можете отлаживать Magento в Netbeans. Но это все еще не сработало для меня. Я поставил точку останова во всех файлах list.phtml, которые я могу найти в проекте Magento с той же линией php: '$ _productCollection = $ this-> getLoadedProductCollection();', а затем обновляет страницу просмотра каталога. Содержимое обновилось, но точки останова были пропущены. Я не знаю, где я неправильно настроил xdebug, так как я могу начать отладку на странице index.php. – umage

+0

@umage вы активировали подсказки шаблона, чтобы узнать, какой файл отображается? – OSdave

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