How To Use Class in Root Script in Magento 2

Root scripts in Magento 2 quickens the process of retrieving the data like getting the server time and store time. Creating a root script in Magento 2 helps developer to save the time. However, a root script has a problem too. In root scripts, we cannot take the complete advantage of IDE auto-completion which boosts the productivity of the developers.

By leveraging the class in a root script, the IDE starts supporting auto-completion facility. Hence, it’s a better choice for developers.

This post explains the programmatic solution to use class in root script in Magento 2.

Programmatic Solution to Use Class in Root Script in Magento 2

<?php

namespace rootScript;
use Magento\Framework\App\Bootstrap;

require __DIR__ . '/app/bootstrap.php';

$params = $_SERVER;

$bootstrap = Bootstrap::create(BP, $params);

$obj = $bootstrap->getObjectManager();

$state = $obj->get('Magento\Framework\App\State');
$state->setAreaCode('frontend');

Class rootClass {

    /**
     * @var \Magento\Framework\Stdlib\DateTime\DateTime
     */
    private $date;

    public function __construct(
        \Magento\Framework\Stdlib\DateTime\DateTime $date
    ){
        $this->date = $date;
    }

    public function printTime()
    {
       echo $this->date->gmtDate();
    }
}

$rootScript=$obj->get('\rootScript\rootClass');
$rootScript->printTime();

Done! Here you go.

Do consider sharing this post with Magento Community via social media.

Thank you.

Sanjay Jethva

Article by

Sanjay Jethva

Sanjay is the co-founder and CTO of Meetanshi with hands-on expertise with Magento since 2011. He specializes in complex development, integrations, extensions, and customizations. Sanjay is one the top 50 contributor to the Magento community and is recognized by Adobe. His passion for Magento 2 and Shopify solutions has made him a trusted source for...