19declare(strict_types=1);
31 private static array $services = [];
33 private function get(
string $class_name):
object
35 if (!$this->
has($class_name)) {
36 self::$services[$class_name] =
new $class_name();
39 return self::$services[$class_name];
44 if (!$this->
has($class_name)) {
45 self::$services[$class_name] =
new $class_name($argument);
48 return self::$services[$class_name];
53 if (!$this->
has($class_name)) {
54 $i =
new ReflectionClass($class_name);
56 self::$services[$class_name] = $i->newInstanceArgs($arguments);
59 return self::$services[$class_name];
62 private function has(
string $class_name): bool
64 return isset(self::$services[$class_name]);
trait SingletonTrait
Class SingletonTrait.
@noinspection PhpIncompatibleReturnTypeInspection
getWithArgument(string $class_name, $argument)
getWithMultipleArguments(string $class_name, array $arguments)