Elgg  Version 5.1
internal_services.php
Go to the documentation of this file.
1 <?php
2 
4 
5 return [
6  'autoloadManager' => DI\autowire(\Elgg\AutoloadManager::class)->constructorParameter('cache', DI\get('localFileCache')),
7  'accessCache' => DI\factory(function (ContainerInterface $c) {
8  return $c->sessionCache->access;
9  }),
10  'accessCollections' => DI\autowire(\Elgg\Database\AccessCollections::class)->constructorParameter('cache', DI\get('accessCache')),
11  'actions' => DI\autowire(\Elgg\ActionsService::class),
12  'accounts' => DI\autowire(\Elgg\Users\Accounts::class),
13  'adminNotices' => DI\autowire(\Elgg\Database\AdminNotices::class),
14  'ajax' => DI\autowire(\Elgg\Ajax\Service::class),
15  'amdConfig' => DI\factory(function (ContainerInterface $c) {
16  $obj = new \Elgg\Amd\Config($c->events);
17  $obj->setBaseUrl($c->simpleCache->getRoot());
18  return $obj;
19  }),
20  'annotationsTable' => DI\autowire(\Elgg\Database\AnnotationsTable::class),
21  'apiUsersTable' => DI\autowire(\Elgg\Database\ApiUsersTable::class),
22  'authentication' => DI\autowire(\Elgg\AuthenticationService::class),
23  'autoParagraph' => DI\autowire(\Elgg\Views\AutoParagraph::class),
24  'boot' => DI\autowire(\Elgg\BootService::class)->constructorParameter('cache', DI\get('bootCache')),
25  'bootCache' => DI\factory(function (ContainerInterface $c) {
27  return new \Elgg\Cache\CompositeCache('elgg_boot', $c->config, $flags);
28  }),
29  'cacheHandler' => DI\autowire(\Elgg\Application\CacheHandler::class),
30  'cssCompiler' => DI\autowire(\Elgg\Assets\CssCompiler::class),
31  'csrf' => DI\autowire(\Elgg\Security\Csrf::class),
32  'classLoader' => DI\autowire(\Elgg\ClassLoader::class),
33  'cli' => DI\autowire(\Elgg\Cli::class)->constructorParameter('input', DI\get('cli_input'))->constructorParameter('output', DI\get('cli_output')),
34  'cli_input' => DI\factory(function (ContainerInterface $c) {
35  return \Elgg\Application::getStdIn();
36  }),
37  'cli_output' => DI\factory(function (ContainerInterface $c) {
38  return \Elgg\Application::getStdOut();
39  }),
40  'cli_progress' => DI\autowire(\Elgg\Cli\Progress::class)->constructorParameter('output', DI\get('cli_output')),
41  // the 'config' service is available but is set as part of the construction of the application
42  'configTable' => DI\autowire(\Elgg\Database\ConfigTable::class),
43  'cron' => DI\autowire(\Elgg\Cron::class),
44  'crypto' => DI\autowire(\Elgg\Security\Crypto::class),
45  'dataCache' => DI\autowire(\Elgg\Cache\DataCache::class),
46  'db' => DI\autowire(\Elgg\Database::class),
47  // the 'dbConfig' service is available but is set as part of the construction of the application
48  'delayedEmailQueueTable' => DI\autowire(\Elgg\Database\DelayedEmailQueueTable::class),
49  'delayedEmailService' => DI\autowire(\Elgg\Email\DelayedEmailService::class),
50  'emails' => DI\autowire(\Elgg\EmailService::class)->constructorParameter('mailer', DI\get('mailer')),
51  'entityCache' => DI\factory(function (ContainerInterface $c) {
52  return new \Elgg\Cache\EntityCache($c->sessionCache->entities);
53  }),
54  'entity_capabilities' => DI\autowire(\Elgg\EntityCapabilitiesService::class),
55  'entityPreloader' => DI\autowire(\Elgg\EntityPreloader::class),
56  'entityTable' => DI\autowire(\Elgg\Database\EntityTable::class),
57  'events' => DI\autowire(\Elgg\EventsService::class),
58  'externalFiles' => DI\autowire(\Elgg\Assets\ExternalFiles::class)->constructorParameter('serverCache', DI\get('serverCache')),
59  'fields' => DI\autowire(\Elgg\Forms\FieldsService::class),
60  'forms' => DI\autowire(\Elgg\FormsService::class),
61  'fileCache' => DI\factory(function (ContainerInterface $c) {
63  return new \Elgg\Cache\CompositeCache('elgg_system_cache', $c->config, $flags);
64  }),
65  'filestore' => DI\factory(function (ContainerInterface $c) {
66  return new \Elgg\Filesystem\Filestore\DiskFilestore($c->config->dataroot);
67  }),
68  'gatekeeper' => DI\autowire(\Elgg\Gatekeeper::class),
69  'group_tools' => DI\autowire(\Elgg\Groups\Tools::class),
70  'handlers' => DI\autowire(\Elgg\HandlersService::class),
71  'hmac' => DI\autowire(\Elgg\Security\HmacFactory::class),
72  'hmacCacheTable' => DI\autowire(\Elgg\Database\HMACCacheTable::class),
73  'html_formatter' => DI\autowire(\Elgg\Views\HtmlFormatter::class),
74  'iconService' => DI\autowire(\Elgg\EntityIconService::class),
75  'imageFetcher' => DI\autowire(\Elgg\Assets\ImageFetcherService::class),
76  'imageService' => DI\autowire(\Elgg\ImageService::class),
77  'invoker' => DI\autowire(\Elgg\Invoker::class)->constructorParameter('dic', function() { return elgg(); }),
78  'locale' => DI\autowire(\Elgg\I18n\LocaleService::class),
79  'localFileCache' => DI\factory(function (ContainerInterface $c) {
81  return new \Elgg\Cache\CompositeCache('elgg_local_system_cache', $c->config, $flags);
82  }),
83  'logger' => DI\factory(function (ContainerInterface $c) {
84  $logger = \Elgg\Logger::factory($c->cli_input, $c->cli_output);
85 
86  $logger->setLevel($c->config->debug);
87 
88  return $logger;
89  }),
90  'mailer' => DI\factory(function (ContainerInterface $c) {
91  switch ($c->config->emailer_transport) {
92  case 'smtp':
93  $transport = new \Laminas\Mail\Transport\Smtp();
94  $transportOptions = new \Laminas\Mail\Transport\SmtpOptions(
95  $c->config->emailer_smtp_settings
96  );
97  $transport->setOptions($transportOptions);
98  return $transport;
99  default:
100  return new \Laminas\Mail\Transport\Sendmail($c->config->emailer_sendmail_settings);
101  }
102  }),
103  'menus' => DI\autowire(\Elgg\Menu\Service::class),
104  'metadataCache' => DI\factory(function (ContainerInterface $c) {
105  $cache = $c->dataCache->metadata;
106  return new \Elgg\Cache\MetadataCache($cache);
107  }),
108  'metadataTable' => DI\autowire(\Elgg\Database\MetadataTable::class),
109  'mimetype' => DI\autowire(\Elgg\Filesystem\MimeTypeService::class),
110  'mutex' => DI\autowire(\Elgg\Database\Mutex::class),
111  'notifications' => DI\autowire(\Elgg\Notifications\NotificationsService::class)->constructorParameter('queue', DI\get('notificationsQueue')),
112  'notificationsQueue' => DI\autowire(\Elgg\Notifications\NotificationsQueue::class)->constructorParameter('name', \Elgg\Notifications\NotificationsQueue::QUEUE_NAME),
113  'pageOwner' => DI\autowire(\Elgg\Page\PageOwnerService::class),
114  'passwords' => DI\autowire(\Elgg\PasswordService::class),
115  'passwordGenerator' => DI\autowire(\Elgg\Security\PasswordGeneratorService::class),
116  'persistentLogin' => DI\autowire(\Elgg\PersistentLoginService::class),
117  'plugins' => DI\autowire(\Elgg\Database\Plugins::class)->constructorParameter('cache', DI\get('pluginsCache')),
118  'pluginsCache' => DI\factory(function (ContainerInterface $c) {
119  return new \Elgg\Cache\CompositeCache('plugins', $c->config, ELGG_CACHE_RUNTIME);
120  }),
121  'publicDb' => DI\autowire(\Elgg\Application\Database::class),
122  'queryCache' => DI\factory(function (ContainerInterface $c) {
123  $config_disabled = $c->config->db_disable_query_cache === true;
124  return new \Elgg\Cache\QueryCache($c->config->db_query_cache_limit, $config_disabled);
125  }),
126  'redirects' => DI\autowire(\Elgg\RedirectService::class),
127  'relationshipsTable' => DI\autowire(\Elgg\Database\RelationshipsTable::class),
128  'request' => DI\factory(function (ContainerInterface $c) {
129  global $CONFIG;
130  $request = \Elgg\Http\Request::createFromGlobals();
131 
132  // not using config service because of deadloop issues (request is used during config construction)
133  // global $CONFIG is not set during installer
134  if ($CONFIG instanceof \Elgg\Config) {
135  $request->initializeTrustedProxyConfiguration($CONFIG);
136  $request->correctBaseURL($CONFIG);
137  }
138 
139  return $request;
140  }),
141  'requestContext' => DI\factory(function (ContainerInterface $c) {
142  $context = new \Elgg\Router\RequestContext();
143  return $context->fromRequest($c->request);
144  }),
145  'responseFactory' => DI\autowire(\Elgg\Http\ResponseFactory::class),
146  'riverTable' => DI\autowire(\Elgg\Database\RiverTable::class),
147  'routeCollection' => DI\autowire(\Elgg\Router\RouteCollection::class),
148  'routes' => DI\autowire(\Elgg\Router\RouteRegistrationService::class),
149  'router' => DI\autowire(\Elgg\Router::class),
150  'search' => DI\autowire(\Elgg\Search\SearchService::class),
151  'seeder' => DI\autowire(\Elgg\Database\Seeder::class),
152  'serveFileHandler' => DI\autowire(\Elgg\Application\ServeFileHandler::class),
153  'session' => DI\factory(function (ContainerInterface $c) {
154  return \ElggSession::fromDatabase($c->config, $c->db);
155  }),
156  'sessionCache' => DI\autowire(\Elgg\Cache\SessionCache::class),
157  'session_manager' => DI\autowire(\Elgg\SessionManagerService::class),
158  'simpleCache' => DI\autowire(\Elgg\Cache\SimpleCache::class),
159  'siteSecret' => DI\autowire(\Elgg\Security\SiteSecret::class),
160  'stickyForms' => DI\autowire(\Elgg\Forms\StickyForms::class),
161  'systemCache' => DI\autowire(\Elgg\Cache\SystemCache::class)->constructorParameter('cache', DI\get('fileCache')),
162  'serverCache' => DI\autowire(\Elgg\Cache\SystemCache::class)->constructorParameter('cache', DI\get('localFileCache')),
163  'subscriptions' => DI\autowire(\Elgg\Notifications\SubscriptionsService::class),
164  'system_messages' => DI\autowire(\Elgg\SystemMessagesService::class),
165  'table_columns' => DI\autowire(\Elgg\Views\TableColumn\ColumnFactory::class),
166  'temp_filestore' => DI\autowire(\Elgg\Filesystem\Filestore\TempDiskFilestore::class),
167  'timer' => DI\autowire(\Elgg\Timer::class),
168  'translator' => DI\autowire(\Elgg\I18n\Translator::class),
169  'uploads' => DI\autowire(\Elgg\UploadService::class),
170  'upgrades' => DI\autowire(\Elgg\UpgradeService::class),
171  'urlGenerator' => DI\factory(function (ContainerInterface $c) {
172  return new \Elgg\Router\UrlGenerator($c->routeCollection, $c->requestContext);
173  }),
174  'urlMatcher' => DI\factory(function (ContainerInterface $c) {
175  return new \Elgg\Router\UrlMatcher($c->routeCollection, $c->requestContext);
176  }),
177  'urlSigner' => DI\autowire(\Elgg\Security\UrlSigner::class),
178  'urls' => DI\autowire(\Elgg\Http\Urls::class),
179  'userCapabilities' => DI\autowire(\Elgg\UserCapabilities::class),
180  'usersApiSessionsTable' => DI\autowire(\Elgg\Database\UsersApiSessionsTable::class),
181  'users_remember_me_cookies_table' => DI\autowire(\Elgg\Database\UsersRememberMeCookiesTable::class),
182  'upgradeLocator' => DI\autowire(\Elgg\Upgrade\Locator::class),
183  'views' => DI\autowire(\Elgg\ViewsService::class),
184  'viewCacher' => DI\autowire(\Elgg\Cache\ViewCacher::class),
185  'widgets' => DI\autowire(\Elgg\WidgetsService::class),
186 
187  // map classes to alias to allow autowiring
188  \ElggSession::class => DI\get('session'),
189  \Elgg\ActionsService::class => DI\get('actions'),
190  \Elgg\Ajax\Service::class => DI\get('ajax'),
191  \Elgg\Amd\Config::class => DI\get('amdConfig'),
192  \Elgg\Application\CacheHandler::class => DI\get('cacheHandler'),
193  \Elgg\Application\Database::class => DI\get('publicDb'),
194  \Elgg\Application\ServeFileHandler::class => DI\get('serveFileHandler'),
195  \Elgg\Assets\CssCompiler::class => DI\get('cssCompiler'),
196  \Elgg\Assets\ExternalFiles::class => DI\get('externalFiles'),
197  \Elgg\Assets\ImageFetcherService::class => DI\get('imageFetcher'),
198  \Elgg\AuthenticationService::class => DI\get('authentication'),
199  \Elgg\AutoloadManager::class => DI\get('autoloadManager'),
200  \Elgg\BootService::class => DI\get('boot'),
201  \Elgg\Cache\DataCache::class => DI\get('dataCache'),
202  \Elgg\Cache\EntityCache::class => DI\get('entityCache'),
203  \Elgg\Cache\MetadataCache::class => DI\get('metadataCache'),
204  \Elgg\Cache\QueryCache::class => DI\get('queryCache'),
205  \Elgg\Cache\SessionCache::class => DI\get('sessionCache'),
206  \Elgg\Cache\SimpleCache::class => DI\get('simpleCache'),
207  \Elgg\Cache\SystemCache::class => DI\get('systemCache'),
208  \Elgg\Cache\ViewCacher::class => DI\get('viewCacher'),
209  \Elgg\ClassLoader::class => DI\get('classLoader'),
210  \Elgg\Cli::class => DI\get('cli'),
211  \Elgg\Cli\Progress::class => DI\get('cli_progress'),
212  \Elgg\Config::class => DI\get('config'),
213  \Elgg\Cron::class => DI\get('cron'),
214  \Elgg\Database::class => DI\get('db'),
215  \Elgg\Database\AccessCollections::class => DI\get('accessCollections'),
216  \Elgg\Database\AdminNotices::class => DI\get('adminNotices'),
217  \Elgg\Database\AnnotationsTable::class => DI\get('annotationsTable'),
218  \Elgg\Database\ApiUsersTable::class => DI\get('apiUsersTable'),
219  \Elgg\Database\ConfigTable::class => DI\get('configTable'),
220  \Elgg\Database\DbConfig::class => DI\get('dbConfig'),
221  \Elgg\Database\DelayedEmailQueueTable::class => DI\get('delayedEmailQueueTable'),
222  \Elgg\Database\EntityTable::class => DI\get('entityTable'),
223  \Elgg\Database\HMACCacheTable::class => DI\get('hmacCacheTable'),
224  \Elgg\Database\MetadataTable::class => DI\get('metadataTable'),
225  \Elgg\Database\Mutex::class => DI\get('mutex'),
226  \Elgg\Database\Plugins::class => DI\get('plugins'),
227  \Elgg\Database\RelationshipsTable::class => DI\get('relationshipsTable'),
228  \Elgg\Database\RiverTable::class => DI\get('riverTable'),
229  \Elgg\Database\Seeder::class => DI\get('seeder'),
230  \Elgg\Database\UsersApiSessionsTable::class => DI\get('usersApiSessionsTable'),
231  \Elgg\Database\UsersRememberMeCookiesTable::class => DI\get('users_remember_me_cookies_table'),
232  \Elgg\EntityPreloader::class => DI\get('entityPreloader'),
233  \Elgg\EmailService::class => DI\get('emails'),
234  \Elgg\Email\DelayedEmailService::class => DI\get('delayedEmailService'),
235  \Elgg\EntityIconService::class => DI\get('iconService'),
236  \Elgg\EventsService::class => DI\get('events'),
237  \Elgg\Filesystem\Filestore\DiskFilestore::class => DI\get('filestore'),
238  \Elgg\Filesystem\Filestore\TempDiskFilestore::class => DI\get('temp_filestore'),
239  \Elgg\Filesystem\MimeTypeService::class => DI\get('mimetype'),
240  \Elgg\FormsService::class => DI\get('forms'),
241  \Elgg\Forms\FieldsService::class => DI\get('fields'),
242  \Elgg\Forms\StickyForms::class => DI\get('stickyForms'),
243  \Elgg\Gatekeeper::class => DI\get('gatekeeper'),
244  \Elgg\Groups\Tools::class => DI\get('group_tools'),
245  \Elgg\HandlersService::class => DI\get('handlers'),
246  \Elgg\Http\Request::class => DI\get('request'),
247  \Elgg\Http\ResponseFactory::class => DI\get('responseFactory'),
248  \Elgg\Http\Urls::class => DI\get('urls'),
249  \Elgg\I18n\LocaleService::class => DI\get('locale'),
250  \Elgg\I18n\Translator::class => DI\get('translator'),
251  \Elgg\ImageService::class => DI\get('imageService'),
252  \Elgg\Invoker::class => DI\get('invoker'),
253  \Elgg\Logger::class => DI\get('logger'),
254  \Elgg\Menu\Service::class => DI\get('menus'),
255  \Elgg\Notifications\NotificationsService::class => DI\get('notifications'),
256  \Elgg\Notifications\NotificationsQueue::class => DI\get('notificationsQueue'),
257  \Elgg\Notifications\SubscriptionsService::class => DI\get('subscriptions'),
258  \Elgg\Page\PageOwnerService::class => DI\get('pageOwner'),
259  \Elgg\PasswordService::class => DI\get('passwords'),
260  \Elgg\PersistentLoginService::class => DI\get('persistentLogin'),
261  \Elgg\RedirectService::class => DI\get('redirects'),
262  \Elgg\Router::class => DI\get('router'),
263  \Elgg\Router\RequestContext::class => DI\get('requestContext'),
264  \Elgg\Router\RouteCollection::class => DI\get('routeCollection'),
265  \Elgg\Router\RouteRegistrationService::class => DI\get('routes'),
266  \Elgg\Router\UrlGenerator::class => DI\get('urlGenerator'),
267  \Elgg\Router\UrlMatcher::class => DI\get('urlMatcher'),
268  \Elgg\Search\SearchService::class => DI\get('search'),
269  \Elgg\Security\Crypto::class => DI\get('crypto'),
270  \Elgg\Security\Csrf::class => DI\get('csrf'),
271  \Elgg\Security\HmacFactory::class => DI\get('hmac'),
272  \Elgg\Security\PasswordGeneratorService::class => DI\get('passwordGenerator'),
273  \Elgg\Security\SiteSecret::class => DI\get('siteSecret'),
274  \Elgg\Security\UrlSigner::class => DI\get('urlSigner'),
275  \Elgg\SessionManagerService::class => DI\get('session_manager'),
276  \Elgg\SystemMessagesService::class => DI\get('system_messages'),
277  \Elgg\Timer::class => DI\get('timer'),
278  \Elgg\UpgradeService::class => DI\get('upgrades'),
279  \Elgg\Upgrade\Locator::class => DI\get('upgradeLocator'),
280  \Elgg\UploadService::class => DI\get('uploads'),
281  \Elgg\UserCapabilities::class => DI\get('userCapabilities'),
282  \Elgg\Users\Accounts::class => DI\get('accounts'),
283  \Elgg\ViewsService::class => DI\get('views'),
284  \Elgg\Views\AutoParagraph::class => DI\get('autoParagraph'),
285  \Elgg\Views\HtmlFormatter::class => DI\get('html_formatter'),
286  \Elgg\Views\TableColumn\ColumnFactory::class => DI\get('table_columns'),
287  \Elgg\WidgetsService::class => DI\get('widgets'),
288 ];
$context
Definition: add.php:8
$request
Definition: livesearch.php:12
static factory(InputInterface $input=null, OutputInterface $output=null)
Build a new logger.
Definition: Logger.php:77
const ELGG_CACHE_RUNTIME
Definition: constants.php:122
global $CONFIG
const ELGG_CACHE_LOCALFILESYSTEM
Definition: constants.php:125
const ELGG_CACHE_PERSISTENT
Definition: constants.php:124
const ELGG_CACHE_FILESYSTEM
Definition: constants.php:123
var elgg
Definition: elgglib.js:4