2012-04-17 7 views
0

スリムフレームワークに関する質問php。SLIMフレームワーク停止コール

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

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

擬似コード:

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


$app->run(); 

私たちは私たちが実行してはならない「その他のコード」、停止関数を呼び出す、という期待していました。 しかし、そうではないようです。

アイデア?

答えて

1

exitを手動で呼び出して、スクリプトの実行を停止することができます。

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

それは私がやっていたことです。しかし、それはスリムな人が推薦していません。彼らは停止がそれを世話するべきだと言っている。ここにリファレンスがあります。 [リンク](http://help.slimframework.com/discussions/questions/122-use-or-not-to-use-exit) –

+0

@KevinRaveああ。まあ、私はつまずいた。 –

+0

とにかく、これは唯一のオプションです!ありがとう! –

2

停止は、ルートコールバックのコンテキスト内でのみ呼び出す必要があります。

http://help.slimframework.com

敬具、ホルトは動作するはず ジョシュ

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)); 

    }); 

参照が使用するノート($アプリ) - これに関する詳細は、ここで見つけることができます:http://www.slimframework.com/documentation/stable#scope-resolution

0

あなたがコールバック関数である場合は、リターンを使用することができます

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

$app->stop(); 

停止機能後。