1
我对Symfony 2.0.16安装有一个严重的问题。为简单服务生成的缓存文件是错误的。Symfony 2错误产生错误的缓存文件
一个服务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);
}
那么,什么是错的,我怎么能解决呢?
你确定这是错的吗? 'getReplacer_FactoryService()'听起来像**应该返回一个工厂,它是 – JamesHalsall