Zend framework 如何在SLMQUE作业中获得doctrine2 entitymanager?
我将使用SlmQueue()Zend framework 如何在SLMQUE作业中获得doctrine2 entitymanager?,zend-framework,doctrine-orm,Zend Framework,Doctrine Orm,我将使用SlmQueue() 如何让doctrine2 entitymanager进入job类?我成功地做到了以下几点: class DistributeNewsJob extends AbstractJob implements QueueAwareInterface, ServiceLocatorAwareInterface { use QueueAwareTrait; public function e
如何让doctrine2 entitymanager进入job类?我成功地做到了以下几点:
class DistributeNewsJob extends AbstractJob implements QueueAwareInterface, ServiceLocatorAwareInterface
{
use QueueAwareTrait;
public function execute()
{
// job code
}
private $entityManager;
private function getEntityManager()
{
if (null === $this->entityManager) {
$this->entityManager = $this->getServiceLocator()->get('Doctrine\ORM\EntityManager');
}
return $this->entityManager;
}
private $services;
public function setServiceLocator(ServiceLocatorInterface $serviceLocator)
{
$this->services = $serviceLocator->getServiceLocator();
}
public function getServiceLocator()
{
return $this->services;
}
public function dispatch(Request $request, Response $response = null)
{
}
}
我们也可以这样做:
您可以使用doctrine模块中的ObjectManagerAwareInterface
use DoctrineModule\Persistence\ObjectManagerAwareInterface;
use DoctrineModule\Persistence\ProvidesObjectManager as ProvidesObjectManagerTrait;
class EmailJob extends AbstractJob implements ObjectManagerAwareInterface
{
use ProvidesObjectManagerTrait;
}
这样,您的工作中就有了ObjectManager