3declare(strict_types=1);
30 private static array $services = [];
32 private function get(
string $class_name):
object
34 if (!$this->
has($class_name)) {
35 self::$services[$class_name] =
new $class_name();
38 return self::$services[$class_name];
43 if (!$this->
has($class_name)) {
44 self::$services[$class_name] =
new $class_name($argument);
47 return self::$services[$class_name];
52 if (!$this->
has($class_name)) {
53 $i =
new ReflectionClass($class_name);
55 self::$services[$class_name] =
$i->newInstanceArgs($arguments);
58 return self::$services[$class_name];
61 private function has(
string $class_name): bool
63 return isset(self::$services[$class_name]);
@noinspection PhpIncompatibleReturnTypeInspection
trait SingletonTrait
Class SingletonTrait.
getWithArgument(string $class_name, $argument)
getWithMultipleArguments(string $class_name, array $arguments)