2016-11-21 83 views
0

我正在使用Silex 1.3的繼承項目。我正在嘗試調試某些內容,但在運行應用程序時無法定義任何新路線。基本路由示例不工作

Stripe class and connect method is being called;

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

如果您嘗試在'$ routes = ...'之前添加'$ app-> flush()',您應該可以看到它們。 – Federkun

回答

0

您不應該在Application實例上調用get(),而是在控制器工廠上 - 請參閱documentation。另外,您必須返回控制器。