Decomposition of Magento Controllers (All You Need to Know)

Decomposition of Magento Controllers

Hello Magento folks,

Magento 2 is the ultimate existence of the leading enterprise for Ecommerce platforms and has been used by over 200,000 online retailers. Basically, Magento 2 offers a wide range of tools which covers all the needs of the retailer including the advanced digital marketing tools.

Why did Decomposition need?

Mainly, in the latest release of Magento 2.4 it became the best chance to progress with all the backwards-incompatible changes that were waiting for years. After the speech of LBajsarowicz spoken at the recent Magento Conferences decided to replace inheritance with composition. The major change was the Pull Request and its followup which was introduced by Vinai Kopp.

There is a major architectural change done in decomposition of controllers by Lena Orobei and vinai Kopp. Both have started delivering by continuous support of each other and a great encouragement of LBajsarowicz.

Decomposition of Magento Controllers All You Need to Know

To implement new Controller Action

\Magento\Framework\App\ActionInterface

Benefits

No need to extend

For creating a fully functional action controller now there is no need of extending from class.

Example controller GET Action

use Magento\Framework\App\Action\HttpGetActionInterface;
use Magento\Framework\View\Result\PageFactory;

class MyController implements HttpGetActionInterface
{
    /** @var PageFactory */
    protected $resultPageFactory;

    public function __construct(PageFactory $resultPageFactory)
    {
        $this->resultPageFactory = $resultPageFactory;
    }
    
    public function execute()
    {
        return $this->resultPageFactory->create();
    }
}

Everyone shall have noticed that here they have used \Magento\Framework\App\Action\HttpGetActionInterface. It is a method-specific Interface extending ActionInterface. If you want to explicitly define what methods are going to be handled by the Controller, the most common interfaces are:

\Magento\Framework\App\Action\HttpDeleteActionInterface

\Magento\Framework\App\Action\HttpGetActionInterface

\Magento\Framework\App\Action\HttpPostActionInterface

\Magento\Framework\App\Action\HttpPutActionInterface

Please be aware that the HEAD method is handled the same way that GET is.

Note: Changes to Magento core are fully backwards-compatible, so you still have time to migrate from Inheritance to Composition.

Conclusion

Hence, by going through the above article you may get all the rich and valuable information regarding the Decomposition of Magento Controllers provided by Magento 2.

Happy Reading?

Previous Article

Deprecation of Magento Core Payment Integrations (Everything You Need to Know)

Next Article

MageComp Contribution for Magento Stores in Corona(COVID-19) Pandemic

View Comments (1)
  1. Alex Hlynskyy

    Why you call it decomposition,
    isn’t de means removing composition,
    while you adding it ?

Leave a Comment

Your email address will not be published. Required fields are marked *

Get Connect With Us

Subscribe to our email newsletter to get the latest posts delivered right to your email.
Pure inspiration, zero spam ✨