首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Slim.php ` `halt`‘方法的行为与文档不同吗?

Slim.php ` `halt`‘方法的行为与文档不同吗?
EN

Stack Overflow用户
提问于 2013-10-29 09:33:51
回答 1查看 1.4K关注 0票数 1

Slim的文档读取了有关框架的halt方法的以下内容:

站住 Slim应用程序的halt()方法将立即返回带有给定状态代码和主体的HTTP响应。此方法接受两个参数: HTTP状态代码和可选消息。Slim将立即停止当前应用程序,并以指定的状态和可选消息(作为响应主体)向客户端发送HTTP响应。这将覆盖现有的\Slim\Http\Response对象。

例如:

代码语言:javascript
复制
//Send a default 500 error response
$app->halt(500);

//Or if you encounter a Balrog...
$app->halt(403, 'You shall not pass!');

因为我在这方面遇到了一些问题,所以我根据它们的文档构建了以下测试应用程序:

代码语言:javascript
复制
<?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);

有趣的是,我得到的回应是:

代码语言:javascript
复制
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?

EN

回答 1

Stack Overflow用户

发布于 2013-11-28 22:05:52

它不允许在路由回调之外调用halt()方法。你应该这样用;

代码语言:javascript
复制
$app->get('/method/', function () {
  //logical controls
  //do something
    //or
  $app->halt();
});   
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19654370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档