【发布时间】:2014-01-20 10:15:32
【问题描述】:
我决定在 symfony2.4 中创建一个服务,它可以访问我项目中所有范围内的容器。
所以我创建了一个模型:
namespace Nevec\RaxcidoBundle\Model;
class Base {
public static $container;
public function __construct() {
self::$container = $container;
}
}
并在 resources/config/services.yml 中将此模型设置为服务
parameters:
nevec_raxcido.core: Nevec\RaxcidoBundle\Model\Base
services:
nevec_raxcido.example:
class: %nevec_raxcido.core%
arguments: [@service_container]
现在,如您所知,我应该像这样在控制器中调用此服务:
$this->get("nevec_raxcido.example");
但我想自动加载此服务,而不在控制器中调用上述命令
问题是如何在 symfony2 内核启动后自动加载服务?
【问题讨论】:
-
您想达到什么目标?您的服务目标是什么?
-
我想访问我在模型文件夹中创建的自定义模型中的容器和学说:$container = Model\Base::$container;
-
您正在尝试使服务容器成为全局对象。这将引导您进行许多良好的练习休息。真的 - 你不需要这个..
-
您可以将容器注入到您想要的服务中。但更好的方法是直接注入特定的服务(而不是整个容器)。
-
好的,好主意,我只是将原则发送到我的服务,但是如何自动调用服务?我不想在我所有的控制器中都调用它!!!
标签: php symfony frameworks containers