Elgg  Version 6.2
InternalContainer.php
Go to the documentation of this file.
1 <?php
2 
3 namespace Elgg\Di;
4 
5 use Elgg\Config;
9 use Psr\Container\ContainerInterface;
10 
128 
138  public function initConfig(Config $config): Config {
139  $this->timer->begin([]);
140 
141  if (!$config->dataroot && !$config->installer_running) {
142  throw new ConfigurationException('Config value "dataroot" is required.');
143  }
144 
145  if (!$config->cacheroot) {
146  $config->cacheroot = $config->dataroot . 'caches';
147  }
148 
149  if (!$config->assetroot) {
150  $config->assetroot = $config->cacheroot . 'views_simplecache';
151  }
152 
153  if (!$config->wwwroot) {
154  $config->wwwroot = $this->request->sniffElggUrl();
155  }
156 
157  if (!$config->plugins_path) {
158  $config->plugins_path = Paths::project() . 'mod';
159  }
160 
161  // move sensitive credentials into isolated services
162  $this->set('dbConfig', DbConfig::fromElggConfig($config));
163 
164  // get this stuff out of config!
165  foreach ($config::SENSITIVE_PROPERTIES as $name) {
166  unset($config->{$name});
167  }
168 
169  return $config;
170  }
171 
175  public static function factory(array $options = []) {
176  $container = parent::factory();
177 
178  if (isset($options['config'])) {
179  $config = $options['config'];
180  $container->set('config', function(ContainerInterface $c) use ($config) {
181  return $c->initConfig($config);
182  });
183  }
184 
185  return $container;
186  }
187 
191  public static function getDefinitionSources(): array {
192  return [\Elgg\Project\Paths::elgg() . 'engine/internal_services.php'];
193  }
194 }
if(! $user||! $user->canDelete()) $name
Definition: delete.php:22
$container
Definition: delete.php:23
return[ 'admin/delete_admin_notices'=>['access'=> 'admin'], 'admin/menu/save'=>['access'=> 'admin'], 'admin/plugins/activate'=>['access'=> 'admin'], 'admin/plugins/activate_all'=>['access'=> 'admin'], 'admin/plugins/deactivate'=>['access'=> 'admin'], 'admin/plugins/deactivate_all'=>['access'=> 'admin'], 'admin/plugins/set_priority'=>['access'=> 'admin'], 'admin/security/security_txt'=>['access'=> 'admin'], 'admin/security/settings'=>['access'=> 'admin'], 'admin/security/regenerate_site_secret'=>['access'=> 'admin'], 'admin/site/cache/invalidate'=>['access'=> 'admin'], 'admin/site/flush_cache'=>['access'=> 'admin'], 'admin/site/icons'=>['access'=> 'admin'], 'admin/site/set_maintenance_mode'=>['access'=> 'admin'], 'admin/site/set_robots'=>['access'=> 'admin'], 'admin/site/theme'=>['access'=> 'admin'], 'admin/site/unlock_upgrade'=>['access'=> 'admin'], 'admin/site/settings'=>['access'=> 'admin'], 'admin/upgrade'=>['access'=> 'admin'], 'admin/upgrade/reset'=>['access'=> 'admin'], 'admin/user/ban'=>['access'=> 'admin'], 'admin/user/bulk/ban'=>['access'=> 'admin'], 'admin/user/bulk/delete'=>['access'=> 'admin'], 'admin/user/bulk/unban'=>['access'=> 'admin'], 'admin/user/bulk/validate'=>['access'=> 'admin'], 'admin/user/change_email'=>['access'=> 'admin'], 'admin/user/delete'=>['access'=> 'admin'], 'admin/user/login_as'=>['access'=> 'admin'], 'admin/user/logout_as'=>[], 'admin/user/makeadmin'=>['access'=> 'admin'], 'admin/user/resetpassword'=>['access'=> 'admin'], 'admin/user/removeadmin'=>['access'=> 'admin'], 'admin/user/unban'=>['access'=> 'admin'], 'admin/user/validate'=>['access'=> 'admin'], 'annotation/delete'=>[], 'avatar/upload'=>[], 'comment/save'=>[], 'diagnostics/download'=>['access'=> 'admin'], 'entity/chooserestoredestination'=>[], 'entity/delete'=>[], 'entity/mute'=>[], 'entity/restore'=>[], 'entity/subscribe'=>[], 'entity/trash'=>[], 'entity/unmute'=>[], 'entity/unsubscribe'=>[], 'login'=>['access'=> 'logged_out'], 'logout'=>[], 'notifications/mute'=>['access'=> 'public'], 'plugins/settings/remove'=>['access'=> 'admin'], 'plugins/settings/save'=>['access'=> 'admin'], 'plugins/usersettings/save'=>[], 'register'=>['access'=> 'logged_out', 'middleware'=>[\Elgg\Router\Middleware\RegistrationAllowedGatekeeper::class,],], 'river/delete'=>[], 'settings/notifications'=>[], 'settings/notifications/subscriptions'=>[], 'user/changepassword'=>['access'=> 'public'], 'user/requestnewpassword'=>['access'=> 'public'], 'useradd'=>['access'=> 'admin'], 'usersettings/save'=>[], 'widgets/add'=>[], 'widgets/delete'=>[], 'widgets/move'=>[], 'widgets/save'=>[],]
Definition: actions.php:73
Database configuration service.
Definition: DbConfig.php:13
static fromElggConfig(Config $config)
Construct from an Elgg Config.
Definition: DbConfig.php:85
Base DI Container class.
Definition: DiContainer.php:13
static getDefinitionSources()
Returns an array of file locations.string[]
static factory(array $options=[])
initConfig(Config $config)
Validate, normalize, fill in missing values, and lock some.
A generic parent class for Configuration exceptions.
Find Elgg and project paths.
Definition: Paths.php:8
static project()
Get the project root (where composer is installed) path with "/".
Definition: Paths.php:25
if($who_can_change_language==='nobody') elseif($who_can_change_language==='admin_only' &&!elgg_is_admin_logged_in()) $options
Definition: language.php:20
$config
Advanced site settings, debugging section.
Definition: debugging.php:6
elgg()
Bootstrapping and helper procedural code available for use in Elgg core and plugins.
Definition: elgglib.php:12