如何在symfony2中获得应用程序实例


how to get application instance in symfony2

我找不到像::getInstance()一样在其他php框架中获得symfony2中的应用程序(单例)实例

我发现只有sfContext::getInstance()买它不工作,看起来像它的方法从symfony1

添加更多信息

我有一些类-抽象类Post{}。我想在这个类中获取一些应用配置和环境变量。我不想把这些都放到构造函数方法中,我想调用应用实例,得到我想要的

如果你看一下web/app.php你会发现你的应用实例只是一个名为kernel的全局变量

    $kernel = $GLOBALS['kernel'];
    die(get_class($kernel));

然而,@san40告诉你阅读文档的原因是你可能从来没有真正需要它做任何事情。SF2和SF1非常不同。因此,如果您解释了为什么需要实例,那么其他人可能会建议其他方法。

===================================

查看web/console显示控制台命令的相同原理,除了实例被称为application。

die(get_class($GLOBALS['application']))

但是,不建议使用应用程序实例来拉取环境变量等。如果没有别的,它会使对象完全依赖于实例。依赖注入就是你想要的。阅读s2文档中的内容