Slim 3 активирует пользовательский обработчик ошибок

В Slim 3 приведен пример пользовательского обработчика ошибок, внедренного в приложение:

$container = new \Slim\Container();
$container['customError'] = function($c){
    return function ($request, $response) use ($c) {
        $output = ['success'=>0, 'error'=>"Custom Error Output."];
        return $c['response']
            ->withStatus(400)
            ->withHeader('Content-Type', 'application/json')
            ->write(json_encode($output));
    };
};
$app = new \Slim\App($container);

Мой вопрос: как мне вызвать эту пользовательскую ошибку?


person nekosama    schedule 20.05.2016    source источник


Ответы (1)


Я увидел, что пользовательская ошибка находится в контейнере. Просто позвони. Но я не думаю, что вам нужно use($c) в return function ($request, $response) use ($c) {.

Вот пример кода:

<?php

$container = new \Slim\Container();

$container['customError'] = function($c){
    return function ($request, $response) {
        $output = ['success'=>0, 'error'=>"Custom Error Output."];
        return $response
            ->withStatus(400)
            ->withHeader('Content-Type', 'application/json')
            ->write(json_encode($output));
    };
};

// init
$app = new \Slim\App($container);

// route
$app->get('/error-page', function ($request, $response, $args) {
    $customError = $this->get('customError');
    return $customError($request, $response);
});
person tirta keniten    schedule 22.08.2016