他们在Magento实现的大型网站上给了我一些任务
我使用Netbeans和Xdebug进行调试(我正在使用lubuntu oneiric btw),我发现自己完成了所有任务。
我碰巧遇到了关于课堂重新申报的任务,我在寻找合适的档案时失去了很多时间。
只是为了学习如何正确地做到这一点:
任务是从类似
<meta name="keywords" content="<?php echo htmlspecialchars($this->getKeywords()) ?>" />
使用Netbeans调试器,我可以轻松打开包含getKeywords()的文件,其中包含:
public function getKeywords()
{
if (empty($this->_data['keywords'])) {
$this->_data['keywords'] = Mage::getStoreConfig('design/head/default_keywords');
}
return $this->_data['keywords'];
}
现在我找不到一种简单的方法来继续调试两种情况:(
特别是我的情况是$this->_data['keywords']
在我必须纠正的页面上不是空的。
那么如何才能轻松了解这个对象是如何创建的,特别是谁填充_data['keywords']
?
我花了很长时间才找到合适的文件。
我在调试方面不是那么专业,所以也许我可以用netbeans w / xdebug来做,但我无法弄明白。
由于
答案 0 :(得分:2)
打开终端并
grep 'setKeywords(' app/code/ -rsn
这将显示设置或使用此变量的位置
答案 1 :(得分:0)
grep -ri "Keywords" * | grep -v cache
' - r'表示递归
' - i'表示不区分大小写
'*'表示任何文件名
的'| grep -v cache'表示删除对缓存目录的任何引用
答案 2 :(得分:0)
您可以暂时创建方法:
public function setKeywords($s) {
echo sprintf('<pre>%s</pre>', print_r(debug_backtrace(), true));
exit;
}
将此代码添加到具有getKeywords()的同一个类中,以便当有人通过此函数添加数据时,您将看到回溯并找出它是如何发生的