J'ai suivi quelques tutoriels dans Magento 2 et cela me laisse un peu perplexe. Je peux voir qu’il existe essentiellement deux moyens de lire / écrire des entités commerciales:
Récupérer des données
Utiliser une approche d'usine
$object = $this->myFactory->create();
$object->load($myId);
Utiliser une approche de référentiel
$repo = $this->myRepository();
$object = $repo->getById($myId);
Enregistrer des données
Utiliser une approche d'usine
$object = $this->myFactory->create();
$object->load($myId);
$object->setData('something', 'somethingDifferent')->save();
Utiliser une approche de référentiel
$repo = $this->myRepository();
$object = $repo->getById($myId);
$object->setData('something', 'somethingDifferent');
$repo->save($object);
Je peux également voir qu’un référentiel et une classe d’usine peuvent être injectés à l’aide de l’injection de dépendance. C'est déroutant au moins pour moi.
Quand devrions-nous utiliser une approche de référentiel et une approche d'usine? Quelle est la meilleure pratique à suivre?