2016-11-21 15 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; 

Когда использовать что-то вроде Paw/Почтальон все, что я получаю пустой массив для $routes. Если я делаю var_dump в верхней части функции подключения, я получаю что-то , поэтому я знаю, что этот метод называется.

Почему эти маршруты не добавляются? Что мне не хватает?

+1

'var_dump ($ routes);' пуст, поскольку маршруты еще не очищены [flushed] (https://github.com/silexphp/Silex/blob/master/src/Silex/Application.php# L494). Только после того, как вы «запустили» приложение «$ app ['routes']' будет заполнено. – Federkun

+0

Если вы попытаетесь добавить '$ app-> flush()' before '$ routes = ...', вы должны их увидеть. – Federkun

ответ

0

Не следует называть get() на примере Application, но вместо этого на фабрике контроллеров - см. documentation. Кроме того, вам необходимо вернуть контроллеры.