gamesshop/src/php/ContainerHandler.php
2024-06-30 22:29:50 +02:00

39 lines
No EOL
864 B
PHP

<?php
declare(strict_types=1);
namespace GamesShop;
use League\Container\Container;
use League\Container\ReflectionContainer;
final class ContainerHandler
{
private static Container|null $instance = null;
public static function getInstance(): Container
{
if (self::$instance === null) {
self::createInstance();
}
return self::$instance;
}
/**
* @template RequestedType
*
* @param class-string<RequestedType>|string $id
*
* @return RequestedType|mixed
*/
public static function get(string $id) {
return self::getInstance()->get($id);
}
private static function createInstance()
{
self::$instance = new Container();
$reflectionContainer = new ReflectionContainer(true);
self::$instance->delegate($reflectionContainer);
}
}