我剛剛完成創建一個slim框架的API應用程序,最初,在我的代碼中,我使用依賴容器來處理所有拋出的異常,代碼如下。PHP:瘦框架異常處理
//Add container to handle all exceptions/errors, fail safe and return json
$container['errorHandler'] = function ($container) {
return function ($request, $response, $exception) use ($container) {
//Format of exception to return
$data = [
'message' => $exception->getMessage()
];
return $container->get('response')->withStatus(500)
->withHeader('Content-Type', 'application/json')
->write(json_encode($data));
};
};
但不是扔我想補充其他HTTPS效應初探碼500 Server Error
所有的時間。我想知道我能否在如何解決這個問題上得到幫助。
public static function decodeToken($token)
{
$token = trim($token);
//Check to ensure token is not empty or invalid
if ($token === '' || $token === null || empty($token)) {
throw new JWTException('Invalid Token');
}
//Remove Bearer if present
$token = trim(str_replace('Bearer ', '', $token));
//Decode token
$token = JWT::decode($token, getenv('SECRET_KEY'), array('HS256'));
//Ensure JIT is present
if ($token->jit == null || $token->jit == "") {
throw new JWTException('Invalid Token');
}
//Ensure User Id is present
if ($token->data->uid == null || $token->data->uid == "") {
throw new JWTException("Invalid Token");
}
return $token;
}
的問題更是從像上面一個功能,因爲苗條的框架決定隱式處理所有的異常,我無法獲得使用try catch
捕捉任何錯誤
是啊,這工作,但問題是,我使用這個容器來捕獲不能訪問$ response對象的不同方法的自定義拋出異常,所以我不能從那些拋出異常的函數設置狀態代碼,並且slim框架不允許我捕獲這些異常。 –
@JamesOkpeGeorge恕我直言,你應該創建一個'Response'類的新對象,然後傳遞它。 –
@JamesOkpeGeorge此外,爲您的新問題,創建一個新的問題。 –