Ich habe versucht injec memcached Service in Entität Repository, aber meine Variante funktioniert nicht.Symfony 3 Service in Entity-Repository injizieren
services:
work.repository.company:
class: WorkBundle\Repository\CompanyRepository
factory: ['@doctrine.orm.entity_manager', getRepository]
arguments:
- 'WorkBundle:Company'
calls:
- [setCacheService, ['@memcache.default']]
CompanyRepository haben SetCacheService, aber es wird nicht aufgerufen.
class CompanyExtension extends \Twig_Extension
{
/**
* @var EntityManager
*/
private $em;
public function setEntityManager(EntityManager $entityManager)
{
$this->em = $entityManager;
}
public function getFunctions()
{
return array(
new \Twig_SimpleFunction('getCompaniesCount', array($this, 'getCompaniesCount'))
);
}
/**
* @return integer
*/
public function getCompaniesCount()
{
return $this->em->getRepository('WorkBundle:Company')->getActiveCompaniesCount();
}
public function getName()
{
return 'work_company_extension';
}
}
Warum funktioniert dieser Code nicht?
Schlechte Praxis! Wie hier gezeigt: [Manuelles Zwischenspeichern von Ressourcen mit memcached in Symfony - Version 1] (http://www.inanzzz.com/index.php/post/gbmc/manually-caching-resources-with-memcached-in-symfony- Version-1) oder [Manuelles Zwischenspeichern von Ressourcen mit memcached in Symfony - Version 2] (http://www.inanzzz.com/index.php/post/9pst/manually-caching-resources-with-memcached-in-symfony- Version-2) – BentCoder