从编译器传递中访问服务

时间:2012-12-21 12:14:56

标签: symfony

我在我的包中有这段代码

class MyPass implements CompilerPassInterface
{
    public function process(ContainerBuilder $container)
    {
        $container->get("plugin")->loadServices($container);
    }
}

当我通过网络浏览器正常运行应用程序时,一切似乎都很好。但是,如果我用

运行作曲家
"post-install-cmd": [
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
        ]

似乎尝试从编译器类中获取服务将返回错误ReflectionException:Class不存在。无论如何要解决这个问题?

(该服务用于注册自定义插件服务的列表,它必须在编译器传递中的某处运行,以允许SF2缓存它)

1 个答案:

答案 0 :(得分:0)

我所做的是重写我的代码,不依赖于从编译器传递中获取服务。