你如何找到你在Magento寻找的代码块?

Maj*_*our 1 php magento

我一直在努力应对愚蠢的局面.客户要求我更改其"高级搜索"页面以添加一些选项.这个页面的URL就像http://www.domainname.com/index.php/catalogsearch/advanced/

这是一个Magento商店,我没有这个框架的经验.我试图学习它,但发现学习曲线太陡,无法获得足够的知识来按时完成项目.

所以我首先制作了一个小型PHP工具,在所有源文件中搜索搜索词并报告返回的点击次数.我使用此工具查找高级搜索页面上显示的唯一字符串.但文字无处可寻!

我的下一次尝试是查看数据库以查找字符串.所以我导出了所有数据库数据并将生成的查询复制到我的代码编辑器中并再次搜索,一无所获!

这很尴尬,让我发疯.我找不到输出高级搜索选项的代码块!

'任何帮助将非常感激.

谢谢,马吉德

ben*_*001 6

到目前为止,我一直在本地开发盒上使用以下策略 - 显然不要在实体店试试这个:

  1. 在系统 - >配置 - >开发人员中打开模板路径提示+块名称.这将使您获得执行最终渲染的phtml文件以及它使用的块对象类型.除非你对IP有限,否则每位访客都会看到这些!
  2. 然后在phtml文件中进一步挖掘你可以轻松Zend_Debug :: dump($ var)来检查有问题的变量/对象并找到对象类型等.
  3. 在您的编辑器中搜索或grep通过/ app/code目录查找哪些文件定义了您刚刚找到的对象类型 - 尽管它基于Zend,正确的文件路径可以在大多数时间从对象类中解决.

  • 一个方便的技巧是故意在php/phtml文件中插入错误,Magento为您提供了一个格式良好的错误屏幕,其中包含一个有趣的读取调用堆栈
  • 核心文件中的echo()语句通常工作得很好,在Magento设置中它们通常不会触发在错误的时间发送的html标头
  • 使用像Netbeans/Eclipse/Zend工作室等IDE,并将所有Magento代码放入您的项目中,生成的phpdoc信息,"开放声明"和代码帮助将为您节省数小时的搜索时间
  • 花时间让Xdebug在您的测试服务器上运行,使用IDE可以使用它.我发现从头开始(在Mac上)设置的最简单的是使用Netbeans作为IDE的本地Mamp安装 - Netbeans网站将引导您完成此操作,一旦您运行良好,您可以忘记大部分其他技巧!

这些只是我到目前为止所尝试的内容 - 请提出更多建议!我还没有找到一种技术来调试Magento使用的大量XML文件中的XML问题的配置问题,这里的问题往往会无声地失败,因此很难追查到结果+ xml文档很糟糕.