Ho seguito un paio di tutorial in Magento 2, e questo mi confonde un po '. Vedo che ci sono fondamentalmente due modi in cui possiamo leggere / scrivere entità aziendali:
Recupera dati
Utilizzando un approccio di fabbrica
$object = $this->myFactory->create();
$object->load($myId);
Utilizzando un approccio al repository
$repo = $this->myRepository();
$object = $repo->getById($myId);
Salvare i dati
Utilizzando un approccio di fabbrica
$object = $this->myFactory->create();
$object->load($myId);
$object->setData('something', 'somethingDifferent')->save();
Utilizzando un approccio al repository
$repo = $this->myRepository();
$object = $repo->getById($myId);
$object->setData('something', 'somethingDifferent');
$repo->save($object);
Vedo anche che è possibile iniettare sia un repository sia una classe factory usando l'iniezione delle dipendenze. Questo è confuso almeno per me.
Quando dovremmo usare un approccio al repository e un approccio factory? Qual è la migliore pratica che dobbiamo seguire?