如何在Shopware中配置调试环境

本文概述

  • 1.显示PHP异常并禁用模板缓存
  • 2.调试Smarty模板
如果你不了解或使用正确的工具, 则在Shopware上进行调试可能会令人头疼。如先前在使用Shopware Profiler正确地调试和分析Shopware教程中所提到的, 我们展示了如何使用前端中的有用工具栏安装Shyim Profiler来调试模板, 查询和网络性能。但是, 如何调试仅在白色屏幕上显示的错误呢?如果你没有在前端看到PHP抛出的异常, 则可能是你未正确配置config.php文件以在前端显示异常。
1.显示PHP异常并禁用模板缓存 与大多数框架一样, 你可以在单个文件中配置全局选项。在这种情况下, 对于Shopware, PHP设置是在项目中根文件夹的config.php文件中配置的。该文件基本上返回带有一些选项的简单数组。配置完全取决于你, 因此有关更多信息, 请阅读文档以获取有关此文件的更多信息。
当我们要调试时, 以下配置将显示有关Shopware应用程序前端和后端JS和PHP错误的信息:
注意 此配置仅对开发环境(本地)安全, 切勿用于生产环境。
< ?phpreturn array(// Here you should find the database config ...// ../// Warning: // Only for Debug Purpose, do not use this configuration in production. 'front' => ['throwExceptions' => true, 'showException' => true], 'template' => ['forceCompile' => true], 'model' => ['cacheProvider' => 'Array'], 'cache' => ['backend' => 'Black-Hole', 'backendOptions' => [], 'frontendOptions' => ['write_control' => false]], "phpsettings" => ['display_errors' => 1, 'error_reporting' => E_ALL]);

在使用新配置清除所有缓存之后, 现在你将能够看到购物软件可能抛出的详细消息和异常:
如何在Shopware中配置调试环境

文章图片
调试最重要的属性是phpsettings, 缓存和模板。例如, 将forceCompile设置为false可以防止缓存Smarty模板。通常, 在模板上进行每次更改后, 你都必须清除缓存, 但是如果将forceCompile设置为true, 则每次重新加载时都会编译模板。对于每个开发人员来说, 这应该是必不可少的选择。请记住, 它确实对加载时间有很大的影响, 因此切勿在生产中使用。
throwExceptions和showExceptions之间的区别在于如何处理异常。选项showException使Shopware错误处理程序保持启用状态, 捕获PHP异常并打印消息, 而不显示通用的” 糟糕!发生错误!” 。信息。相反, 选项throwExceptions跳过Shopware错误处理程序, 并输出纯PHP异常。了解这一点很重要, 因为Shopware错误处理程序需要捕获一些错误才能进行自我修复, 例如CSRF令牌无效。
2.调试Smarty模板 如果要调试smarty模板, 则可以使用smarty修饰符, 例如:
{somevariable|@var_export}{somevariable|@var_dump}{somevariable|@print_r}

此外, 你可以使用Smarty调试控制台转储分配给模板的所有变量。是的, 如果你在要调试的任何模板上使用debug块, 则聪明地不要侵入项目的HTML结构来调试变量:
{block name="frontend_index_logo"}{* This will show the Smarty Debug PopUp*}{debug}< div class="shop--slogan"> < h2> Some HTML< /h2> < /div> {/block}

在任何块中添加此行将显示一个弹出窗口, 其中带有Smarty视图, 该视图在添加块的模板中显示一小部分已使用的变量。如前所述, 出于安全原因, 某些浏览器可能会阻止PopUp, 请不要忘记允许你正在调试的网站的浏览器中出现弹出窗口:
如何在Shopware中配置调试环境

文章图片
允许弹出窗口(如果被阻止)后, 重新加载页面, 浏览器的弹出窗口应显示:
如何在Shopware中配置调试环境

文章图片
如果你知道可以在Shopware中调试的其他配置或工具, 请在注释框中与社区共享。
【如何在Shopware中配置调试环境】编码愉快!

    推荐阅读