Symfony 2错误生成错误的缓存文件

时间:2012-09-05 15:05:07

标签: symfony

我在安装Symfony 2.0.16时遇到了严重问题。为简单服务生成的缓存文件是错误的。

一种服务replacer.factory,一种工厂服务。我只会展示一个简化版本:

/**
 * @DI\Service("replacer.factory")
 */
class ReplacerFactory
{

    /**
     * @DI\InjectParams({"container" = @DI\Inject("service_container")})
     */
    public function __construct(ContainerInterface $container)
    {
        $this->container = $container;
    }

    public function getReplacer($object)
    {
        $replacer = new NewsletterReplacer($this->container);

        // Return the instance of NewsletterReplacer class
        return $replacer->setInstance($object);
    }

}

这是返回的实例,再次简化了一下:

class NewsletterReplacer
{

    private $container;

    private $instance;

    public function __construct(ContainerInterface $container)
    {
        $this->container = $container;
    }

    public function setInstance(Newsletter $newsletter)
    {
        $this->instance = $newsletter;
    }
}

由于某种原因,生成的缓存文件完全错误

实际上,这是appDevProjectContainer.php文件的一部分,在命令php app/console cache:clear --env=dev --no-debug之后:

protected function getReplacer_FactoryService()
{
    return $this->services['replacer.factory']
        = new \Acme\HelloBundle\Service\Replacer\NewsletterReplacer();
}

应该是:

protected function getReplacer_FactoryService()
{
    return $this->services['replacer.factory']
        = new \Acme\HelloBundle\Service\Replacer\ReplacerFactory($this);
}

那么,出了什么问题,我该如何解决?

0 个答案:

没有答案
相关问题