ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
SingletonTrait.php
Go to the documentation of this file.
1<?php namespace ILIAS\GlobalScreen;
2
9{
10
14 private static $services = [];
15
16
22 private function get(string $class_name)
23 {
24 if (!$this->has($class_name)) {
25 self::$services[$class_name] = new $class_name();
26 }
27
28 return self::$services[$class_name];
29 }
30
31
37 private function getWithArgument(string $class_name, $argument)
38 {
39 if (!$this->has($class_name)) {
40 self::$services[$class_name] = new $class_name($argument);
41 }
42
43 return self::$services[$class_name];
44 }
45
46
54 private function getWithMultipleArguments(string $class_name, array $arguments)
55 {
56 if (!$this->has($class_name)) {
57 $i = new \ReflectionClass($class_name);
58
59 self::$services[$class_name] = $i->newInstanceArgs($arguments);
60 }
61
62 return self::$services[$class_name];
63 }
64
65
71 private function has(string $class_name) : bool
72 {
73 return isset(self::$services[$class_name]);
74 }
75}
An exception for terminatinating execution or to throw for unit testing.
$i
Definition: metadata.php:24
trait SingletonTrait
Class SingletonTrait.
has(string $class_name)
getWithArgument(string $class_name, $argument)
getWithMultipleArguments(string $class_name, array $arguments)