code: public static function getInstance()
  	{
  		if (static::$objInstance !== null)
  		{
  			return static::$objInstance;
  		}
  
  		$objToken = System::getContainer()->get('security.token_storage')->getToken();
  
  		// Load the user from the security storage
  		if ($objToken !== null && is_a($objToken->getUser(), static::class))
  		{
  			return $objToken->getUser();
  		}
  
  		// Check for an authenticated user in the session
  		$strUser = System::getContainer()->get('contao.security.token_checker')->getBackendUsername();
  
  		if ($strUser !== null)
  		{
  			static::$objInstance = static::loadUserByUsername($strUser);
  
  			return static::$objInstance;
  		}
  
  		return parent::getInstance();
  	}
docs: Instantiate a new user object
  
  @return static|User The object instance