Magento 2 Factory Object
In this part, we will talk about Factory Object for model in Magento 2. As you know in OOP, a factory method will be used to instantiate an object. In Magento 2, the Magento 2 Factory Object do the same thing.
The Factory class name is the name of Model class and append with the Factory
word. So for our example, we will have TopicFactory class. You must not create this class. Magento will create it for you. Whenever Magento’s object manager encounters a class name that ends in the word ‘Factory’, it will automatically generate the Factory class in the var/generation folder if the class does not already exist. You will see the factory class in
var/generation/<vendor_name>/<module_name>/Model/ClassFactory.php
To instantiate a model object we will use automatic constructor dependency injection to inject a factory object, then use factory object to instantiate the model object.
For example, we will call the model to get data in Block. We will create a Topic block:
Mageplaza\HelloWorld\Block\Topic.php
Content for this file:
<?php
namespace Mageplaza\HelloWorld\Block;
class Topic extends \Magento\Framework\View\Element\Template
{
protected $_topicFactory;
public function _construct(
\Magento\Framework\View\Element\Template\Context $context,
\Mageplaza\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;
}
}
As you see in this block, the TopicFactory object will be created in the _construct()
function. In the _prepareLayout()
function, we use $topic = $this->_topicFactory->create();
to create the model object.
- How to create a simple Hello World module for Magento 2
- Magento 2 Block Template Ultimate Guides
- How to Create Module in Magento 2
- How to Create Controller in Magento 2
- How to create CRUD Models in Magento 2
- How to Create Magento 2 Block, Layout and Templates
- Configuration - System.xml
- How To Create Admin Menu In Magento 2
- Admin ACL
- Admin Grid
People also searched for
- magento 2 factory object
- create object in magento 2
- magento 2 factory pattern
- magento 2 getmodel
- get product collection in magento 2
- magento 2 dependency injection
- magento 2 load model
- magento 2 dependency injection example
- magento 2 factory
- magento 2 model factory
- factory in magento 2
- magento 2 factory class
- magento 2 factories
- what is factory in magento 2
- magento factory
- magento 2 product factory
- type error occurred when creating object magento 2
- magento 2 load model by multiple fields
- type error occurred when creating object interceptor magento 2
- magento 2 create object
- magento 2 difference between factory and repository
- magento 2 category factory
- 2.3.x, 2.4.x