2016-11-21 6 views
0

私はSilex 1.3を使用する継承プロジェクトに取り組んでいます。私は何かをデバッグしようとしていますが、アプリケーションを実行するときに新しいルートを定義することはできません。基本ルーティングの例が動作しない

Stripeクラスとconnectメソッドが呼び出されています。

use Silex\Application; 
use Silex\ControllerProviderInterface; 

class Stripe implements ControllerProviderInterface 
{ 
    public function connect(Application $app) 
    { 
     $app->get('/something', function() { 
      return 'Main home page'; 
     }); 

     $app->get('/hello/{name}', function ($name) use ($app) { 
      return 'Hello '.$app->escape($name); 
     }); 

     $routes = $app['routes']->all(); 

     var_dump($routes); 
     exit; 

ポウ/ポストマンのようなものを使用した場合、私が得るすべては$routesための空の配列です。私がvar_dumpを接続関数の最上位に置くと、が得られるので、このメソッドはと呼ばれています。

なぜこれらのルートが追加されないのですか?私は何が欠けていますか?

+1

ルートは(まだ)[フラッシュされていない]ため、 'var_dump($ routes);'は空です(https://github.com/silexphp/Silex/blob/master/src/Silex/Application.php# L494)。アプリケーションを実行した後でのみ、 '$ app ['routes']'が読み込まれます。 – Federkun

+0

'$ app-> flush()'を '$ routes = ...'の前に追加しようとすると、それらを見ることができます。 – Federkun

答えて

0

Applicationインスタンスではなく、コントローラ工場でget()を呼び出してください。documentationを参照してください。さらに、コントローラを返す必要があります。

関連する問題