Je comprends l'avantage du modèle de dépôt mais je n'arrive pas à comprendre que dans Symfony3 Doctrine il y a Doctrine\ORM\EntityManager
y \Doctrine\ORM\EntityRepository
-
Quelle est la différence entre les deux ?
-
Le référentiel doit-il être injecté dans le contrôleur ou le gestionnaire d'entités ?
Modifier La bonne question devrait être : Quelle est la bonne façon d'accéder à un référentiel depuis un contrôleur ?
- Un référentiel doit-il être injecté dans un contrôleur comme un service ?
- Un référentiel doit-il être injecté dans un autre service en tant que service ?
-
Le gestionnaire d'entités doit-il contenir une quelconque requête ?
Modifier La bonne question devrait être : un service doit-il contenir une requête ? Comme @MateuszSip l'a déjà expliqué, cela peut être fait en injectant un gestionnaire d'entités. -
Une fonction personnalisée comme
getAvailableManagers
être mis en dépôt ou des services ? (Oùmanager
est un dépôt et il y a il y a une certaine logique dans la déterminationavailable manager
) -
Que diriez-vous d'une fonction plus générique comme
findAllManager
doit-il être dans le référentiel ou dans le gestionnaire d'entités ?
Actuellement, j'utilise Symfony3. Merci beaucoup
A la vôtre,
Modifier En parlant à @MateuszSip (merci mon pote), j'ai décidé de rendre ma question plus claire avec un exemple ci-dessous. Veuillez noter que le code ci-dessous ne représente pas le problème réel.
contrôleur
Class ManagementController
{
public function assignManager($projectType)
{
// Grabbing a service
$s = $this->get('mycompany_management_management_service')
$managers = $s->findAvailableManagers();
$managers = $s->checkCapability($managers, $projectType);
return $managers
}
}
dépôt
class ManagerRepository extends \Doctrine\ORM\EntityRepository
{
public function findAvailableManagers()
{
...
return $managers
}
public function checkCapability($managers, $type)
{
...
return $capableManagers
}
}
services
class ManagementService
{
... I am not sure what should be here.
}