对Slim Framework php有疑问。
在我的应用程序中,如果条件不匹配,我想停止执行应用程序。
每个Slim文档都有一个暂停功能。但这似乎并没有起作用。 即使在调用Halt后,应用程序也会连续执行。
伪代码:
if ( $valid ) {
// Do something
} else {
$app->halt(500, "not valid");
}
// Other code here.
$app->run();
我在期待,我们称之为Halt函数,“其他代码”不应该执行。 但情况似乎并非如此。
有什么想法吗?
答案 0 :(得分:6)
停止应该有效。正如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
答案 1 :(得分:2)
答案 2 :(得分:1)
您可以随时手动调用exit
来停止脚本执行。
$app->halt(500, "not valid");
exit;
答案 3 :(得分:0)
如果您处于回调函数
,则可以使用returnreturn $app->halt(500,"message");
或
$app->stop();
暂停功能后。