Я прошел через несколько уроков в Magento 2, и это меня немного смущает. Я вижу, что есть два основных способа, которыми мы можем читать / писать бизнес-объекты:
Получить данные
Использование фабричного подхода
$object = $this->myFactory->create();
$object->load($myId);
Использование подхода репозитория
$repo = $this->myRepository();
$object = $repo->getById($myId);
Сохранять данные
Использование фабричного подхода
$object = $this->myFactory->create();
$object->load($myId);
$object->setData('something', 'somethingDifferent')->save();
Использование подхода репозитория
$repo = $this->myRepository();
$object = $repo->getById($myId);
$object->setData('something', 'somethingDifferent');
$repo->save($object);
Я также вижу, что и репозиторий, и фабричный класс могут быть внедрены с помощью внедрения зависимостей. Это сбивает с толку по крайней мере для меня.
Когда мы должны использовать подход хранилища и фабричный подход? Какова лучшая практика, которой мы должны следовать?