【问题标题】:How can I make apigility display exception trace in ApiProblem responses?如何在 ApiProblem 响应中使 apigility 显示异常跟踪?
【发布时间】:2014-09-29 19:36:39
【问题描述】:

在 zf-api-problem 和 zf-rest 的 module.config.php 文件中,它说您可以覆盖应用程序配置中的“display_exceptions”以获取响应中的异常堆栈跟踪。

'view_manager' => array(
    // Enable this in your application configuration in order to get full
    // exception stack traces in your API-Problem responses.
    'display_exceptions' => false,
),

我在我的应用程序 module.config.php(来自骨架应用程序)中将 display_exceptions 设置为 true,但是当所有配置合并时它会被覆盖。当我查看正在构建 ApiProblemResponse 的 \ZF\ApiProblem\Listener\SendApiResponseListener 中的配置状态时,'display_exceptions' 设置为 false。

它是否在应用程序配置后合并到 zf-api-problem 和 zf-rest 配置中并覆盖它?

如何在供应商模块中启用 display_exceptions 而无需更改它?

【问题讨论】:

    标签: php zend-framework2 laminas-api-tools


    【解决方案1】:

    启用开发模式时,apigility 会将./config/development.config.php.dist 复制到./config/development.config.php。这与另一个配置合并。所以,编辑 .dist 文件,禁用和启用开发模式。

    【讨论】:

    • 我最终制作了另一个 .local.php 配置文件并将其放入 config/autoload。没错,我需要在应用程序级别而不是在模块中进行此配置
    【解决方案2】:

    设置被另一个配置覆盖可能是对的。 尝试一次更改应用程序模块的顺序。所以在你的application.config.php:

    <?php
    
    return array(
        'modules' => array(
            'ZF\Hal',
            'ZF\Rest',
            'ZF\ApiProblem',
    
            ... more modules ...
    
            'My\Custom\Module'  // --> Set your 'display_exceptions' => true 
                                //     in the module.config.php of this module
        )
    )
    

    【讨论】:

    • 最好的地方是 development.config.php 或 local.php
    猜你喜欢
    • 2012-07-25
    • 2010-10-16
    • 2015-08-30
    • 1970-01-01
    • 2015-07-08
    • 1970-01-01
    相关资源
    最近更新 更多