2016-04-06 47 views
1

我做了一个自动写入routing.yml的命令。 我的问题是,当我尝试浏览途径之一无法加载资源“。”写入routing.yml后

api: 
    resource: "." 
    type:  "api" 
    prefix: /api 

我得到这个例外

无法加载资源“”

我试着添加一个缓存:清除我的命令,但我得到了同样的异常。

+0

你想达到什么目的? – eRIZ

+0

我想自动化某些配置和路由:在routing.yml和config.yml中写入路由和绑定配置的命令行。 这可行,但配置生成后不起作用。 –

+0

我不记得FOSRestBundle如何解析这条指令,但恐怕不可能按照你想要的方式。我目前唯一看到的是创建另一个CompilerPass,它将追加适合您需要的配置。 – eRIZ

回答

0

我添加了一个缓存预热,在命令终止之后运行,Symfony将路由转储到生成的代码中。

class TerminateListener { 

    public function onConsoleTerminate(ConsoleTerminateEvent $event) { 
     if ($event->getCommand()->getName() == ('my:command')) { 
      $app = new Application(); 
      $cache_clear_command = $event->getCommand()->getApplication()->find('cache:warmup'); 
      $cache_clear_command->setApplication($app); 
      $event->getOutput()->setVerbosity('VERBOSITY_QUIET'); 
      $cache_clear_command->run($event->getInput(), $event->getOutput()); 
     } 
    } 
} 

services: 
warmup.listener: 
     class:TerminateListener 
     tags: 
      - { name: kernel.event_listener, event: console.terminate , method: onConsoleTerminate }