39 lines
No EOL
864 B
PHP
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);
|
|
}
|
|
} |