是否有這兩個語句之間的任何差別:getEntityManager()和getDoctrine()在Symfony2的
$this->getDoctrine()->getEntityManager()->getRepository();
$this->getDoctrine()->getRepository();
是否區別與任何OOP概念我失蹤了呢?
是否有這兩個語句之間的任何差別:getEntityManager()和getDoctrine()在Symfony2的
$this->getDoctrine()->getEntityManager()->getRepository();
$this->getDoctrine()->getRepository();
是否區別與任何OOP概念我失蹤了呢?
一般來說,沒有什麼區別,因爲
$this->getDoctrine()->getRepository();
僅僅是
$this->getDoctrine()->getEntityManager()->getRepository();
幫手可以有多個實體管理器,然後會有一個細微的差別,從得到一個存儲庫一個:
$this->getDoctrine()->getRepository($entityName, $enityManagerName);
$this->getDoctrine()->getEntityManager($entityManagerName)->getRepository($entityName);
但是,再次,你會得到的結果沒有什麼不同。
其他所有事情都是平等的,我會用最短的一個去。
的結果是一樣的,但是如果你需要EntityManager的超過剛開存儲庫,它可能是很方便的存儲,然後收到信息庫以及其他操作,如沖洗:
$_em = $this->getDoctrine()->getEntityManager();
$repository = $_em->getRepository();
//...
$_em->flush();
如前所述,如果您只需要獲取存儲庫,請使用第二條語句,該條語句比第一條語句簡短易讀。
沒有區別。如果你看一下AbstractManagerRegistry.php的源代碼。你可以看到這個代碼:
public function getRepository($persistentObjectName, $persistentManagerName = null)
{
return $this->getManager($persistentManagerName)->getRepository($persistentObjectName);
}
正如你所看到的,當你調用getRepository(),它首先調用getManager(),然後getRepository()。我建議使用第二個,因爲它可以在IDE(如PHPStorm)中提供智能感知。希望能幫助到你。
$ this-> getDoctrine() - > getEntityManager()在Symfony 2中不推薦使用 – bitek