Magento 2 工厂对象

redmaomail 2024-07-24 18:28 阅读数 62 #Magento

红帽云邮外贸主机

在这一部分中,我们将讨论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();创建模型对象。


红帽云邮外贸主机

分享到:
版权声明:本站内容源自互联网,如有内容侵犯了你的权益,请联系删除相关内容。
    红帽云邮外贸主机
热门
    红帽云邮外贸主机
    红帽云邮外贸主机