【问题标题】:SLIM framework Halt callSLIM 框架暂停调用
【发布时间】:2012-04-17 19:47:18
【问题描述】:

对 Slim Framework php 有疑问。

在我的应用程序中,如果条件不匹配,我想停止应用程序的执行。

根据 Slim 文档,有一个停止功能。但这似乎不起作用。 即使在调用 Halt 之后,应用程序也会继续执行。

伪代码:

if ( $valid ) {
         // Do something
} else {
    $app->halt(500, "not valid");
}
// Other code here.


$app->run();

我期待的是,我们调用 Halt 函数,“其他代码”不应该执行。 但似乎并非如此。

有什么想法吗?

【问题讨论】:

    标签: php frameworks execution slim halt


    【解决方案1】:

    Halt 应该可以工作。正如 Josh 提到的,它确实需要从路由回调中调用。例如,如果找不到指定的路由,我将以下内容用作自定义 404(在 index.php 中)。

        // not found (custom 404)
        $app->notFound(function () use ($app) {
    
                // build response
                $response = array(
                    'type' => 'not_found',
                    'message' => 'The requested resource does not exist.'
                );
    
                // output response
                $app->halt(404, json_encode($response));
    
        });
    

    请注意使用 ($app) 的参考——更多信息可以在这里找到:http://www.slimframework.com/documentation/stable#scope-resolution

    【讨论】:

      【解决方案2】:

      Halt 只能在路由回调的上下文中调用。我建议您在官方 Slim Framework 支持论坛上提出任何其他问题:

      http://help.slimframework.com

      最好的问候, 乔什

      【讨论】:

        【解决方案3】:

        您可以随时手动调用exit 来停止脚本执行。

        $app->halt(500, "not valid");
        exit;
        

        【讨论】:

        • 这就是我一直在做的。但它不被 Slim 家伙推荐。他们说停止应该处理它。这是参考。 link
        • @KevinRave 啊。好吧,那我就迷路了。
        • 无论如何,这是现在唯一的选择!谢谢!
        【解决方案4】:

        在回调函数中可以使用return

        return $app->halt(500,"message");
        

        $app->stop();
        

        在停止功能之后。

        【讨论】:

          猜你喜欢
          • 2016-11-08
          • 2013-04-03
          • 2015-12-14
          • 2020-03-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-10-04
          相关资源
          最近更新 更多