2015-05-29 46 views
2

引导Symfony2内核后,如何执行一个包中的某些代码?在Symfony内核初始化上运行代码

  • 代码必须在处理请求或运行控制台命令之前运行。
  • 即使内核在其生命周期内处理多个请求,代码也必须执行一次。
  • 代码必须能够访问包配置。因此它可能不会在该过程的早期运行。

我需要这个的原因是我需要注册一个流包装。我需要能够使用包配置,因为流包装定义是在配置中定义的。

我试过如下:

  • 实施捆绑类的构造函数。 (这是不行的,并非所有的包都在这一点上初始化)
  • kernel.requestconsole.command创建事件侦听器(这将导致多次执行代码时的内核处理其生命周期内的多个请求。)
+2

这个问题有点短暂的信息。你可以分享你的尝试,以及你遇到了什么问题? –

+0

@JayBlanchard:我真的不知道我能告诉你更多。我解释了我想达到的目的以及为什么。我给了我试过的两个选项,包括我遇到的这些选项遇到的问题。 – Xatoo

回答

6

您可以覆盖您的包的boot方法。

class MyBundle extends Bundle 
{ 
    public function boot() 
    { 

    } 
} 
2

您可以注册一个服务作为kernel.requestconsole.command的事件监听器。它将从控制台和HTTP请求中被触发。