Magento 2 工厂对象
在这一部分中,我们将讨论Magento 2 中模型的工厂对象。正如您在 OOP 中所知,工厂方法将用于实例化对象。在 Magento 2 中,Magento 2 工厂对象执行相同的操作。
Factory类的名称是 Model 类的名称并附加单词Factory
。因此,对于我们的示例,我们将有 TopicFactory 类。您不得创建此类。Magento 将为您创建它。每当 Magento 的对象管理器遇到以“Factory”结尾的类名时,如果该类尚不存在,它将自动在 var/ Generation 文件夹中生成 Factory 类。你会看到工厂类
var/generation/<vendor_name>/<module_name>/Model/ClassFactory.php
为了实例化模型对象,我们将使用自动构造函数依赖注入来注入工厂对象,然后使用工厂对象实例化模型对象。
例如,我们将调用模型来获取Block 中的数据。我们将创建一个主题块:
Example\HelloWorld\Block\Topic.php
该文件的内容:
<?php
namespace Example\HelloWorld\Block;
class Topic extends \Magento\Framework\View\Element\Template
{
protected $_topicFactory;
public function _construct(
\Magento\Framework\View\Element\Template\Context $context,
\Example\HelloWorld\Model\TopicFactory $topicFactory
){
$this->_topicFactory = $topicFactory;
parent::_construct($context);
}
public function _prepareLayout()
{
$topic = $this->_topicFactory->create();
$collection = $topic->getCollection();
foreach($collection as $item){
var_dump($item->getData());
}
exit;
}
}
正如您在此块中看到的,将在函数中创建 TopicFactory 对象_construct()
。在_prepareLayout()
函数中,我们用来$topic = $this->_topicFactory->create();
创建模型对象。
版权声明:本站内容源自互联网,如有内容侵犯了你的权益,请联系删除相关内容。