StocksNew/vendor/php-flasher/flasher/Container/FlasherContainer.php

58 lines
1.1 KiB
PHP
Raw Normal View History

2024-08-27 12:03:06 +00:00
<?php
/*
* This file is part of the PHPFlasher package.
* (c) Younes KHOUBZA <younes.khoubza@gmail.com>
*/
namespace Flasher\Prime\Container;
/**
* @internal
*/
final class FlasherContainer
{
/**
* @var self|null
*/
private static $instance = null;
/**
* @var ContainerInterface
*/
private static $container;
private function __construct(ContainerInterface $container)
{
self::$container = $container;
}
/**
* @param string $id
*
* @return mixed
*
* @throws \LogicException
*/
public static function create($id)
{
if (null === self::$instance) {
throw new \LogicException('Container is not initialized yet. Container::init() must be called with a real container.');
}
return self::$container->get($id);
}
/**
* @return void
*/
public static function init(ContainerInterface $container)
{
if (null !== self::$instance) {
return;
}
self::$instance = new self($container);
}
}