[PHP]SlimFrameworkでエラーのデバッグ出力を行う方法

カテゴリ: SlimFramework

SlimFrameworkでは、スクリプトの途中でエラーが出たとき以下のメッセージを画面に表示するだけで、エラーのスタックトレースなど詳細を画面に表示しません。

Slim Application Error
A website error has occurred. Sorry for the temporary inconvenience.

開発中にエラーの詳細を表示させたい場合は、以下のように\Slim\AppのコンストラクタでdisplayErrorDetailsのフラグを立てればよいです。

$app = new \Slim\App([
    'settings' => [
        'displayErrorDetails' => true,
    ],
]);

上記の設定を行ったうえで再度エラーを発生させると、以下のようにエラーの発生個所やスタックトレースが表示されるようになります。

Slim Application Error
The application could not run because of the following error:

Details
Type: ArgumentCountError
Message: Too few arguments to function Slim\Views\PhpRenderer::render(), 0 passed in C:\project\public\index.php on line 28 and at least 2 expected
File: C:\project\vendor\slim\php-view\src\PhpRenderer.php
Line: 60
Trace

#0 C:\project\public\index.php(28): Slim\Views\PhpRenderer->render()
#1 [internal function]: Closure->{closure}(Object(Slim\Http\Request), Object(Slim\Http\Response), Array)
#2 C:\project\vendor\slim\slim\Slim\Handlers\Strategies\RequestResponse.php(41): call_user_func(Object(Closure), Object(Slim\Http\Request), Object(Slim\Http\Response), Array)
#3 C:\project\vendor\slim\slim\Slim\Route.php(344): Slim\Handlers\Strategies\RequestResponse->__invoke(Object(Closure), Object(Slim\Http\Request), Object(Slim\Http\Response), Array)
#4 C:\project\vendor\slim\slim\Slim\MiddlewareAwareTrait.php(122): Slim\Route->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response))
#5 C:\project\vendor\slim\slim\Slim\Route.php(316): Slim\Route->callMiddlewareStack(Object(Slim\Http\Request), Object(Slim\Http\Response))
#6 C:\project\vendor\slim\slim\Slim\App.php(476): Slim\Route->run(Object(Slim\Http\Request), Object(Slim\Http\Response))
#7 C:\project\vendor\slim\slim\Slim\MiddlewareAwareTrait.php(122): Slim\App->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response))
#8 C:\project\vendor\slim\slim\Slim\App.php(370): Slim\App->callMiddlewareStack(Object(Slim\Http\Request), Object(Slim\Http\Response))
#9 C:\project\vendor\slim\slim\Slim\App.php(295): Slim\App->process(Object(Slim\Http\Request), Object(Slim\Http\Response))
#10 C:\project\public\index.php(47): Slim\App->run()
#11 {main}

Amazonでおトクに買い物する方法
AmazonチャージでポイントGET


Amazonは買いもの前にAmazonギフト券をチャージしてポイントをゲットしないと損!

こちらもおススメ

コメントを残す

メールアドレスが公開されることはありません。