0

Slim Framework php について質問があります。

私のアプリケーションでは、条件が一致しない場合にアプリケーションの実行を停止したいと考えています。

Slim のドキュメントによると、停止機能があります。しかし、それは機能していないようです。Halt を呼び出した後でも、アプリケーションは継続して実行されます。

擬似コード:

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


$app->run();

Halt関数を呼び出すと、「その他のコード」は実行されないはずです。しかし、そうではないようです。

何か案は?

4

4 に答える 4

7

停止が機能するはずです。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));

    });

use ($app) への参照に注意してください。詳細については、http: //www.slimframework.com/documentation/stable#scope-resolutionを参照してください。

于 2012-05-31T07:09:03.927 に答える
2

Halt は、ルート コールバックのコンテキスト内でのみ呼び出す必要があります。さらに質問がある場合は、Slim Framework の公式サポート フォーラムで質問することをお勧めします。

http://help.slimframework.com

よろしく、ジョシュ

于 2012-04-18T01:33:02.630 に答える
1

いつでもexit手動で呼び出して、スクリプトの実行を停止できます。

$app->halt(500, "not valid");
exit;
于 2012-04-17T19:48:38.037 に答える
0

You can use return if you are in a callback function

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

or

$app->stop();

after halt function.

于 2015-02-26T15:06:24.187 に答える