在过去的一年半的Magento开发站点中,我们的开发团队已经针对每个Magento安装进行了一系列标准的修改/调整。
我们在stage..com上为我们所有的项目都有一个舞台站点设置。我们还根据.dev或.local在本地开发项目(基于开发人员的偏好)。此代码段将仅启用错误报告和Magento’舞台或本地域上的开发人员模式。
在下面插入以下代码“require_once $ mageFilename;” 在 在dex.php
1 2 3 4 5 6 7 |
#如果域是***。dev,***。local或stage。****,则以开发人员模式运行站点并打开错误报告 如果(<a href="http://www.php.net/in_array" 目标=“_空白” rel=“ noopener”>在_array</a>(<a href="http://www.php.net/substr" 目标=“_空白” rel=“ noopener”>substr</a>($_服务器['HTTP_HOST'], -4), <a href="http://www.php.net/array" 目标=“_空白” rel=“ noopener”>数组</a>('.dev', 'ocal') ) || <a href="http://www.php.net/strstr" 目标=“_空白” rel=“ noopener”>strstr</a>($_服务器['HTTP_HOST'], '阶段。') ){ 法师::setIsDeveloperMode(真正); <a href="http://www.php.net/ini_set" 目标=“_空白” rel=“ noopener”>在i_set</a>('display_errors', 1); } |
法师nto具有内置的日志记录方法,使您可以将任何变量类型记录到日志文件中。这在构建Magento模块时非常有帮助,因为您可以轻松检查数据结构,而不必打开调试会话来检查本地范围内的变量。默认情况下,Magento中的日志记录处于关闭状态。要启用日志记录,请转到“Developer” tab 上 the “System > Configuration” page. Change the “Enabled”选择列表下的“Log Settings” section to “Yes”然后保存页面。
您可以使用以下代码将变量记录到Magento日志中:Mage :: 日志($ variable);默认情况下,日志存储在var / 日志 / system.log中
这是Mage :: 日志()的一些用法示例
1 2 3 4 5 6 7 8 9 10 11 |
#记录来自模型的数据 $模型 = 法师::getModel(“产品目录/产品”)->加载(1); 法师::<a href="http://www.php.net/log" 目标=“_空白” rel=“ noopener”>日志</a>($模型->getData()); #记录集合中的数据 $采集 = 法师::getResourceModel('产品目录/产品集合')->addAttributeToSelect('*')->加载(); 法师::<a href="http://www.php.net/log" 目标=“_空白” rel=“ noopener”>日志</a>($采集->getItems()); #记录数组中的数据 $数组 = <a href="http://www.php.net/array" 目标=“_空白” rel=“ noopener”>数组</a>('酒吧' => 'foo', 1, 2,); 法师::<a href="http://www.php.net/log" 目标=“_空白” rel=“ noopener”>日志</a>($数组); |
如果你’在Mac上重新开发’d recommend opening the system.log file with the Console app. 如果你’在基于* nix的计算机上,您“tail”使用以下bash命令获取日志文件的最新内容:
尾巴 -f
/var/system.log
我们所有的开发人员都在使用 调试器 作为其Apache配置的一部分。 Xdebug有两个主要优点:(1)它允许我们使用PDT调试PHP应用程序。 (2)它使用详细的,完全可自定义的错误回溯来覆盖默认的PHP错误消息。您可以在下面看到示例回溯:
如果没有xdebug,该错误将是这样的:
法师nto具有内置的错误和异常处理。由于错误是由Magento处理的,因此我们必须修改一个核心文件,使Magento允许PHP / 调试器处理消息的显示。
在以后的博客文章中,将介绍如何使Magento让xdebug处理异常
在app / code / core / 法师 / Core / Model / App.php中,将setErrorHandler()方法替换为下面的setErrorHandler()方法:
1 2 3 4 5 6 7 8 |
上市 功能 setErrorHandler($处理程序) { //骇客:Magento仅应在开发人员模式关闭时处理错误 如果(!法师::getIsDeveloperMode()) <a href="http://www.php.net/set_error_handler" 目标=“_空白” rel=“ noopener”>set_error_handler</a>($处理程序); //结束攻击 返回 $这个; } |
绝不建议修改Magento核心文件,但是如果Magento升级并且此更改被覆盖,则不会’成为一个问题,因为它’对于网站正常运作而言并不重要。
在这个 在Magento中启用Xdebug的异常处理程序 博客文章中,您可以阅读有关如何修改Magento以使Xdebug处理异常的信息。
Hopefully, these few tips will help you 在 your 法师nto development. 如果你 have any general tips for 法师nto development, I’d喜欢听到他们的消息。
5 评论s
非常感谢,节省了很多时间。
感谢您的巨大贡献!
在您的第一个代码段(index.php添加)中,您的意思是‘.local’您的第二个数组元素?您’ve got ‘ocal’ now.
@bluescrubbie– Thanks. 是, I do mean ‘ocal’,因为该代码仅检查基本网址的后四个字符。我本可以使用这样的代码,但是我没有’看不到额外的函数调用的开销:
当您想要最佳的电子商务平台以及最佳的企业网站设计时, Los Angeles 法师nto 开发者 是可以满足您需求的团队。现在大约有110,000个客户信任他们。
谢谢!我很乐意看到提到的有关使用xdebug(包括设置)的教程。这些提示已派上用场 我的 草药店。
和bluescrubbie— I believe “ocal”被用来代替“local”为了处理大写。