我使用的是“ indragunawan / facade-bundle”软件包,当我在“ dev”环境中使用它时,它对我来说效果很好,但是当我在生产环境中使用它时,它抛出了一个错误:Exception - You have requested a non-existent service "indragunawan.facade.container"
。
当我测试下面显示的代码时,如果它在“ dev”中,则返回true,而在“ prod”中,则返回false。
/**
* @author Indra Gunawan <hello@indra.my.id>
*/
final class IndragunawanFacadeBundle extends Bundle
{
/**
* {@inheritdoc}
*/
public function boot()
{
parent::boot();
dump(
$this->container->has('indragunawan.facade.container')
);
die;
AbstractFacade::setFacadeContainer($this->container->get('indragunawan.facade.container'));
}
/**
* {@inheritdoc}
*/
public function build(ContainerBuilder $container)
{
parent::build($container);
$container->addCompilerPass(new AddFacadePass());
}
}
理想情况下,
$this->container->get('indragunawan.facade.container')
返回ServiceLocator
对象。
答案 0 :(得分:0)
检查捆绑软件是否在PROD环境中或仅在DEV中正确加载。
答案 1 :(得分:0)
解决方案比我预期的简单。我只需要删除整个app/var/cache
文件夹,即可再次重新生成文件,而不会出现错误。