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.

Table of Contents