Slim 的文档中关于框架halt
方法的内容如下:
停
Slim 应用程序的 halt() 方法将立即返回带有给定状态代码和正文的 HTTP 响应。此方法接受两个参数:HTTP 状态代码和可选消息。Slim 将立即停止当前应用程序并向客户端发送带有指定状态和可选消息(作为响应正文)的 HTTP 响应。这将覆盖现有的 \Slim\Http\Response 对象。
例如
//Send a default 500 error response
$app->halt(500);
//Or if you encounter a Balrog...
$app->halt(403, 'You shall not pass!');
因为我在这方面遇到了一些问题,所以我根据他们的文档构建了以下测试应用程序:
<?php
// Include Slim framework dependencies;
require '../lib/Slim/Slim.php';
\Slim\Slim::registerAutoloader(); // Slim's autloader;
$app = new \Slim\Slim();
//Send a default 500 error response
$app->halt(500);
有趣的是,我得到的回应是:
Fatal error: Uncaught exception 'Slim\Exception\Stop' in D:\projects\myApplication\api\lib\Slim\Slim.php:1004 Stack trace: #0 D:\projects\myApplication\api\lib\Slim\Slim.php(1024): Slim\Slim->stop() #1 D:\projects\myApplication\api\app\app.php(10): Slim\Slim->halt(500) #2 D:\projects\myApplication\api\public\index.php(4): include_once('D:\__projects\S...') #3 {main} thrown in D:\projects\myApplication\api\lib\Slim\Slim.php on line 1004
不用说,HTTP 响应代码是 200。那么 Slim 到底发生了什么?为什么 HTTP 响应代码不是 500?