]> git.mxchange.org Git - friendica.git/blob - src/DI.php
Replace BaseObject class with DI::* calls
[friendica.git] / src / DI.php
1 <?php
2
3 namespace Friendica;
4
5 use Dice\Dice;
6 use Friendica\Core\Cache\ICache;
7 use Friendica\Core\Config\Configuration;
8 use Friendica\Core\Config\PConfiguration;
9 use Friendica\Core\L10n\L10n;
10 use Friendica\Core\Lock\ILock;
11 use Friendica\Core\Session\ISession;
12 use Friendica\Database\Database;
13 use Friendica\Model\Notify;
14 use Friendica\Protocol\Activity;
15 use Friendica\Util\ACLFormatter;
16 use Friendica\Content\Item as ContentItem;
17 use Friendica\Content\Text\BBCode\Video as BBCodeVideo;
18 use Friendica\Util\DateTimeFormat;
19 use Friendica\Util\FileSystem;
20 use Friendica\Util\Logger\WorkerLogger;
21 use Psr\Log\LoggerInterface;
22
23 /**
24  * This class is capable of getting all dynamic created classes
25  *
26  * There has to be a "method" phpDoc for each new class, containing result class for a proper matching
27  *
28  * @method static App app()
29  * @method static ACLFormatter aclFormatter()
30  * @method static Notify notify()
31  * @method static Activity activity()
32  * @method static ContentItem contentItem()
33  * @method static BBCodeVideo bbCodeVideo()
34  * @method static DateTimeFormat dtFormat()
35  * @method static ICache cache()
36  * @method static Configuration config()
37  * @method static PConfiguration pConfig()
38  * @method static ILock lock()
39  * @method static L10n l10n()
40  * @method static LoggerInterface logger()
41  * @method static LoggerInterface devLogger()
42  * @method static LoggerInterface workerLogger()
43  * @method static ISession session()
44  * @method static App\Authentication auth()
45  * @method static App\Arguments args()
46  * @method static App\BaseURL baseUrl()
47  * @method static App\Mode mode()
48  * @method static App\Module module()
49  * @method static App\Page page()
50  * @method static App\Router router()
51  * @method static Database dba()
52  * @method static FileSystem fs()
53  *
54  */
55 class DI
56 {
57         /** @var Dice */
58         private static $dice;
59
60         public static function init(Dice $dice)
61         {
62                 self::$dice = $dice;
63         }
64
65         public static function __callStatic($name, $arguments)
66         {
67                 switch ($name) {
68                         case 'app':
69                                 return self::$dice->create(App::class, $arguments);
70                         case 'aclFormatter':
71                                 return self::$dice->create(ACLFormatter::class, $arguments);
72                         case 'auth':
73                                 return self::$dice->create(App\Authentication::class, $arguments);
74                         case 'args':
75                                 return self::$dice->create(App\Arguments::class, $arguments);
76                         case 'baseUrl':
77                                 return self::$dice->create(App\BaseURL::class, $arguments);
78                         case 'mode':
79                                 return self::$dice->create(App\Mode::class, $arguments);
80                         case 'module':
81                                 return self::$dice->create(App\Module::class, $arguments);
82                         case 'page':
83                                 return self::$dice->create(App\Page::class, $arguments);
84                         case 'router':
85                                 return self::$dice->create(App\Router::class, $arguments);
86                         case 'notify':
87                                 return self::$dice->create(Notify::class, $arguments);
88                         case 'activity':
89                                 return self::$dice->create(Activity::class, $arguments);
90                         case 'contentItem':
91                                 return self::$dice->create(ContentItem::class, $arguments);
92                         case 'bbCodeVideo':
93                                 return self::$dice->create(BBCodeVideo::class, $arguments);
94                         case 'dtFormat':
95                                 return self::$dice->create(DateTimeFormat::class, $arguments);
96                         case 'cache':
97                                 return self::$dice->create(ICache::class, $arguments);
98                         case 'config':
99                                 return self::$dice->create(Configuration::class, $arguments);
100                         case 'pConfig':
101                                 return self::$dice->create(PConfiguration::class, $arguments);
102                         case 'lock':
103                                 return self::$dice->create(ILock::class, $arguments);
104                         case 'l10n':
105                                 return self::$dice->create(L10n::class, $arguments);
106                         case 'logger':
107                                 return self::$dice->create(LoggerInterface::class, $arguments);
108                         case 'devLogger':
109                                 return self::$dice->create('$devLogger', $arguments);
110                         case 'workerLogger':
111                                 return self::$dice->create(WorkerLogger::class, $arguments);
112                         case 'session':
113                                 return self::$dice->create(ISession::class, $arguments);
114                         case 'dba':
115                                 return self::$dice->create(Database::class, $arguments);
116                         case 'fs':
117                                 return self::$dice->create(FileSystem::class, $arguments);
118                         default:
119                                 return null;
120                 }
121         }
122 }