在Magento 2中,工厂模式是什么?它有什么用途?由于我刚接触magento,所以能否请您详细解释一下。
工厂定义:
工厂是服务类,用于实例化非可注入类,即表示数据库实体的模型。它们在 ObjectManager 和业务代码之间创建了一层抽象。
仓库定义:
仓库对象负责将您的对象信息读取和写入到对象存储中。
使用仓库进行完全加载
$model->load()
不是服务契约的一部分。关于这个特定主题,我有一个问题,你可能会发现答案很有用:是否有理由优先选择 $model->load()
而不是服务契约?
使用工厂创建新实体
仓库没有创建新实体的方法,所以在这种情况下,您需要一个工厂。但是使用工厂来创建接口,例如 Magento\Catalog\Api\Data\ProductInterfaceFactory
- 它将根据 DI 配置创建正确的实现。
然后使用 repository->save()
方法保存它。
更多内容请参阅开发文档 http://devdocs.magento.com/guides/v2.0/extension-dev-guide/factories.html