个性化阅读
专注于IT技术分析

如何在Shopware中配置调试环境

本文概述

如果你不了解或使用正确的工具, 则在Shopware上进行调试可能会令人头疼。如先前在使用Shopware Profiler正确地调试和分析Shopware教程中所提到的, 我们展示了如何使用前端中的有用工具栏安装Shyim Profiler来调试模板, 查询和网络性能。但是, 如何调试仅在白色屏幕上显示的错误呢?如果你没有在前端看到PHP抛出的异常, 则可能是你未正确配置config.php文件以在前端显示异常。

1.显示PHP异常并禁用模板缓存

与大多数框架一样, 你可以在单个文件中配置全局选项。在这种情况下, 对于Shopware, PHP设置是在项目中根文件夹的config.php文件中配置的。该文件基本上返回带有一些选项的简单数组。配置完全取决于你, 因此有关更多信息, 请阅读文档以获取有关此文件的更多信息。

当我们要调试时, 以下配置将显示有关Shopware应用程序前端和后端JS和PHP错误的信息:

注意

此配置仅对开发环境(本地)安全, 切勿用于生产环境。

<?php
return 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, 请不要忘记允许你正在调试的网站的浏览器中出现弹出窗口:

Smarty调试模板

允许弹出窗口(如果被阻止)后, 重新加载页面, 浏览器的弹出窗口应显示:

Smarty Shopware调试模板

如果你知道可以在Shopware中调试的其他配置或工具, 请在注释框中与社区共享。

编码愉快!

赞(0)
未经允许不得转载:srcmini » 如何在Shopware中配置调试环境

评论 抢沙发

评论前必须登录!