我找不到如何像在其他 php 框架中一样制作 ::getInstance() 之类的东西来在 symfony2 中获取 Application (singleton) 实例
我发现只有 sfContext::getInstance() 买它不起作用,看起来像 symfony1 的方法
添加更多信息。
我有一些类 - 抽象类 Post { }。我想在这个类中获取一些应用程序配置、环境变量。我不想把所有这些东西都放到构造函数方法中,而是我想调用应用程序实例并得到我想要的一切
如果您查看 web/app.php,您会发现您的应用程序实例只是一个名为 kernel 的全局变量
$kernel = $GLOBALS['kernel'];
die(get_class($kernel));
但是,@san40 告诉您阅读这些文档的原因是您可能永远不需要它来做任何事情。SF2 与 SF1 非常不同。因此,如果您解释了您想要该实例的原因,那么有人可能会提出替代方法。
====================================
查看 web/console 显示了控制台命令的相同原理,但实例称为应用程序。
die(get_class($GLOBALS['application']))
但是,不建议使用应用程序实例来拉取环境变量等。如果没有别的,它会使您的对象完全依赖于实例。依赖注入是你想要的。通读 s2 文档中的内容。