‪TYPO3CMS  10.4
Bootstrap.php
Go to the documentation of this file.
1 <?php
2 
3 /*
4  * This file is part of the TYPO3 CMS project.
5  *
6  * It is free software; you can redistribute it and/or modify it under
7  * the terms of the GNU General Public License, either version 2
8  * of the License, or any later version.
9  *
10  * For the full copyright and license information, please read the
11  * LICENSE.txt file that was distributed with this source code.
12  *
13  * The TYPO3 project - inspiring people to share!
14  */
15 
16 namespace ‪TYPO3\CMS\Core\Core;
17 
18 use Composer\Autoload\ClassLoader;
19 use Doctrine\Common\Annotations\AnnotationReader;
20 use Doctrine\Common\Annotations\AnnotationRegistry;
21 use Psr\Container\ContainerInterface;
22 use Psr\EventDispatcher\EventDispatcherInterface;
33 use TYPO3\CMS\Core\Configuration\ConfigurationManager;
36 use TYPO3\CMS\Core\DependencyInjection\ContainerBuilder;
42 use TYPO3\CMS\Core\Package\PackageManager;
48 use TYPO3\PharStreamWrapper\Behavior;
49 use TYPO3\PharStreamWrapper\Interceptor\ConjunctionInterceptor;
50 use TYPO3\PharStreamWrapper\Interceptor\PharMetaDataInterceptor;
51 use TYPO3\PharStreamWrapper\Manager;
52 use TYPO3\PharStreamWrapper\PharStreamWrapper;
53 
66 {
75  public static function ‪init(
76  ClassLoader $classLoader,
77  bool $failsafe = false
78  ): ContainerInterface {
79  $requestId = substr(md5(‪StringUtility::getUniqueId()), 0, 13);
80 
81  static::initializeClassLoader($classLoader);
84  }
85 
86  static::startOutputBuffering();
87 
88  $configurationManager = static::createConfigurationManager();
89  if (!static::checkIfEssentialConfigurationExists($configurationManager)) {
90  $failsafe = true;
91  }
92  static::populateLocalConfiguration($configurationManager);
93 
94  $logManager = new ‪LogManager($requestId);
95  // LogManager is used by the core ErrorHandler (using GeneralUtility::makeInstance),
96  // therefore we have to push the LogManager to GeneralUtility, in case there
97  // happen errors before we call GeneralUtility::setContainer().
98  GeneralUtility::setSingletonInstance(LogManager::class, $logManager);
99 
100  static::initializeErrorHandling();
101  static::initializeIO();
102 
103  $disableCaching = $failsafe ? true : false;
104  $coreCache = static::createCache('core', $disableCaching);
105  $packageManager = static::createPackageManager(
106  $failsafe ? FailsafePackageManager::class : PackageManager::class,
107  $coreCache
108  );
109 
110  // Push PackageManager instance to ExtensionManagementUtility
111  // Should be fetched through the container (later) but currently a PackageManager
112  // singleton instance is required by PackageManager->activePackageDuringRuntime
113  GeneralUtility::setSingletonInstance(PackageManager::class, $packageManager);
115  static::initializeRuntimeActivatedPackagesFromConfiguration($packageManager);
116 
117  static::setDefaultTimezone();
118  static::setMemoryLimit();
119 
120  $assetsCache = static::createCache('assets', $disableCaching);
121  $dependencyInjectionContainerCache = static::createCache('di');
122 
123  $bootState = new \stdClass();
124  $bootState->done = false;
125  $bootState->cacheDisabled = $disableCaching;
126 
127  $builder = new ContainerBuilder([
128  ClassLoader::class => $classLoader,
129  ApplicationContext::class => ‪Environment::getContext(),
130  ConfigurationManager::class => $configurationManager,
131  LogManager::class => $logManager,
132  'cache.di' => $dependencyInjectionContainerCache,
133  'cache.core' => $coreCache,
134  'cache.assets' => $assetsCache,
135  PackageManager::class => $packageManager,
136 
137  // @internal
138  'boot.state' => $bootState,
139  ]);
140 
141  $container = $builder->createDependencyInjectionContainer($packageManager, $dependencyInjectionContainerCache, $failsafe);
142 
143  // Push the container to GeneralUtility as we want to make sure its
144  // makeInstance() method creates classes using the container from now on.
145  GeneralUtility::setContainer($container);
146 
147  // Reset singleton instances in order for GeneralUtility::makeInstance() to use
148  // ContainerInterface->get() for early services from now on.
149  GeneralUtility::removeSingletonInstance(LogManager::class, $logManager);
150  GeneralUtility::removeSingletonInstance(PackageManager::class, $packageManager);
151 
152  if ($failsafe) {
153  $bootState->done = true;
154  return $container;
155  }
156 
157  ‪IconRegistry::setCache($assetsCache);
158  ‪PageRenderer::setCache($assetsCache);
159  ‪ExtensionManagementUtility::setEventDispatcher($container->get(EventDispatcherInterface::class));
160  static::loadTypo3LoadedExtAndExtLocalconf(true, $coreCache);
161  static::unsetReservedGlobalVariables();
162  $bootState->done = true;
163  static::loadBaseTca(true, $coreCache);
164  static::checkEncryptionKey();
165 
166  return $container;
167  }
168 
175  public static function ‪startOutputBuffering()
176  {
177  ob_start();
178  }
179 
189  public static function ‪baseSetup()
190  {
191  if (!defined('TYPO3_REQUESTTYPE')) {
192  throw new \RuntimeException('No Request Type was set, TYPO3 does not know in which context it is run.', 1450561838);
193  }
196  }
197  }
198 
205  public static function ‪initializeClassLoader(ClassLoader $classLoader)
206  {
208 
210  AnnotationRegistry::registerLoader([$classLoader, 'loadClass']);
211 
212  // Annotations used in unit tests
213  AnnotationReader::addGlobalIgnoredName('test');
214 
215  // Annotations that control the extension scanner
216  AnnotationReader::addGlobalIgnoredName('extensionScannerIgnoreFile');
217  AnnotationReader::addGlobalIgnoredName('extensionScannerIgnoreLine');
218  }
219 
228  protected static function ‪checkIfEssentialConfigurationExists(ConfigurationManager $configurationManager): bool
229  {
230  return file_exists($configurationManager->getLocalConfigurationFileLocation())
231  && file_exists(‪Environment::getLegacyConfigPath() . '/PackageStates.php');
232  }
233 
243  public static function ‪createPackageManager($packageManagerClassName, ‪FrontendInterface $coreCache): PackageManager
244  {
245  $dependencyOrderingService = GeneralUtility::makeInstance(DependencyOrderingService::class);
247  $packageManager = new $packageManagerClassName($dependencyOrderingService);
248  $packageManager->injectCoreCache($coreCache);
249  $packageManager->initialize();
250 
251  return $packageManager;
252  }
253 
260  protected static function ‪initializeRuntimeActivatedPackagesFromConfiguration(PackageManager $packageManager)
261  {
262  $packages = ‪$GLOBALS['TYPO3_CONF_VARS']['EXT']['runtimeActivatedPackages'] ?? [];
263  if (!empty($packages)) {
264  trigger_error('Support for runtime activated packages will be removed in TYPO3 v11.0.', E_USER_DEPRECATED);
265  foreach ($packages as $runtimeAddedPackageKey) {
266  $packageManager->activatePackageDuringRuntime($runtimeAddedPackageKey);
267  }
268  }
269  }
270 
278  public static function ‪loadTypo3LoadedExtAndExtLocalconf($allowCaching = true, ‪FrontendInterface $coreCache = null)
279  {
280  if ($allowCaching) {
281  $coreCache = $coreCache ?? GeneralUtility::makeInstance(CacheManager::class)->getCache('core');
282  }
283  ‪ExtensionManagementUtility::loadExtLocalconf($allowCaching, $coreCache);
284  }
285 
292  public static function ‪createConfigurationManager(): ConfigurationManager
293  {
294  return new ConfigurationManager();
295  }
296 
304  protected static function ‪populateLocalConfiguration(ConfigurationManager $configurationManager)
305  {
306  $configurationManager->exportConfiguration();
307  }
308 
321  public static function ‪createCache(string $identifier, bool $disableCaching = false): ‪FrontendInterface
322  {
323  $cacheConfigurations = ‪$GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations'] ?? [];
324  $cacheConfigurations['di']['frontend'] = PhpFrontend::class;
325  $cacheConfigurations['di']['backend'] = ContainerBackend::class;
326  $cacheConfigurations['di']['options'] = [];
327  $configuration = $cacheConfigurations[$identifier] ?? [];
328 
329  $frontend = $configuration['frontend'] ?? VariableFrontend::class;
330  $backend = $configuration['backend'] ?? Typo3DatabaseBackend::class;
331  $options = $configuration['options'] ?? [];
332 
333  if ($disableCaching) {
334  $backend = NullBackend::class;
335  $options = [];
336  }
337 
338  $backendInstance = new $backend('production', $options);
339  if (!$backendInstance instanceof ‪BackendInterface) {
340  throw new ‪InvalidBackendException('"' . $backend . '" is not a valid cache backend object.', 1545260108);
341  }
342  if (is_callable([$backendInstance, 'initializeObject'])) {
343  $backendInstance->initializeObject();
344  }
345 
346  $frontendInstance = new $frontend($identifier, $backendInstance);
347  if (!$frontendInstance instanceof ‪FrontendInterface) {
348  throw new ‪InvalidCacheException('"' . $frontend . '" is not a valid cache frontend object.', 1545260109);
349  }
350  if (is_callable([$frontendInstance, 'initializeObject'])) {
351  $frontendInstance->initializeObject();
352  }
353 
354  return $frontendInstance;
355  }
356 
360  protected static function ‪setDefaultTimezone()
361  {
362  $timeZone = ‪$GLOBALS['TYPO3_CONF_VARS']['SYS']['phpTimeZone'];
363  if (empty($timeZone)) {
364  // Time zone from the server environment (TZ env or OS query)
365  $defaultTimeZone = @date_default_timezone_get();
366  if ($defaultTimeZone !== '') {
367  $timeZone = $defaultTimeZone;
368  } else {
369  $timeZone = 'UTC';
370  }
371  }
372  // Set default to avoid E_WARNINGs with PHP > 5.3
373  date_default_timezone_set($timeZone);
374  }
375 
381  protected static function ‪initializeErrorHandling()
382  {
383  static::initializeBasicErrorReporting();
384  $displayErrors = 0;
385  $exceptionHandlerClassName = null;
386  $productionExceptionHandlerClassName = ‪$GLOBALS['TYPO3_CONF_VARS']['SYS']['productionExceptionHandler'];
387  $debugExceptionHandlerClassName = ‪$GLOBALS['TYPO3_CONF_VARS']['SYS']['debugExceptionHandler'];
388 
389  $errorHandlerClassName = ‪$GLOBALS['TYPO3_CONF_VARS']['SYS']['errorHandler'];
390  $errorHandlerErrors = ‪$GLOBALS['TYPO3_CONF_VARS']['SYS']['errorHandlerErrors'] | E_USER_DEPRECATED;
391  $exceptionalErrors = ‪$GLOBALS['TYPO3_CONF_VARS']['SYS']['exceptionalErrors'];
392 
393  $displayErrorsSetting = (int)‪$GLOBALS['TYPO3_CONF_VARS']['SYS']['displayErrors'];
394  switch ($displayErrorsSetting) {
395  case -1:
396  $ipMatchesDevelopmentSystem = GeneralUtility::cmpIP(GeneralUtility::getIndpEnv('REMOTE_ADDR'), ‪$GLOBALS['TYPO3_CONF_VARS']['SYS']['devIPmask']);
397  $exceptionHandlerClassName = $ipMatchesDevelopmentSystem ? $debugExceptionHandlerClassName : $productionExceptionHandlerClassName;
398  $displayErrors = $ipMatchesDevelopmentSystem ? 1 : 0;
399  $exceptionalErrors = $ipMatchesDevelopmentSystem ? $exceptionalErrors : 0;
400  break;
401  case 0:
402  $exceptionHandlerClassName = $productionExceptionHandlerClassName;
403  $displayErrors = 0;
404  break;
405  case 1:
406  $exceptionHandlerClassName = $debugExceptionHandlerClassName;
407  $displayErrors = 1;
408  break;
409  default:
410  if (!(TYPO3_REQUESTTYPE & TYPO3_REQUESTTYPE_INSTALL)) {
411  // Throw exception if an invalid option is set.
412  throw new \RuntimeException(
413  'The option $TYPO3_CONF_VARS[SYS][displayErrors] is not set to "-1", "0" or "1".',
414  1476046290
415  );
416  }
417  }
418  @ini_set('display_errors', (string)$displayErrors);
419 
420  if (!empty($errorHandlerClassName)) {
421  // Register an error handler for the given errorHandlerError
422  $errorHandler = GeneralUtility::makeInstance($errorHandlerClassName, $errorHandlerErrors);
423  $errorHandler->setExceptionalErrors($exceptionalErrors);
424  if (is_callable([$errorHandler, 'setDebugMode'])) {
425  $errorHandler->setDebugMode($displayErrors === 1);
426  }
427  if (is_callable([$errorHandler, 'registerErrorHandler'])) {
428  $errorHandler->registerErrorHandler();
429  }
430  }
431  if (!empty($exceptionHandlerClassName)) {
432  // Registering the exception handler is done in the constructor
433  GeneralUtility::makeInstance($exceptionHandlerClassName);
434  }
435  }
436 
450  protected static function ‪initializeBasicErrorReporting(): void
451  {
452  // Core should be notice free at least until this point ...
453  error_reporting(E_ALL & ~(E_STRICT | E_NOTICE | E_DEPRECATED));
454  }
455 
459  protected static function ‪initializeIO()
460  {
461  if (in_array('phar', stream_get_wrappers())) {
462  // destroy and re-initialize PharStreamWrapper for TYPO3 core
463  Manager::destroy();
464  Manager::initialize(
465  (new Behavior())
466  ->withAssertion(new ConjunctionInterceptor([
468  new PharMetaDataInterceptor()
469  ]))
470  );
471 
472  stream_wrapper_unregister('phar');
473  stream_wrapper_register('phar', PharStreamWrapper::class);
474  }
475  }
476 
481  protected static function ‪setMemoryLimit()
482  {
483  if ((int)‪$GLOBALS['TYPO3_CONF_VARS']['SYS']['setMemoryLimit'] > 16) {
484  @ini_set('memory_limit', (string)((int)‪$GLOBALS['TYPO3_CONF_VARS']['SYS']['setMemoryLimit'] . 'm'));
485  }
486  }
487 
494  public static function ‪unsetReservedGlobalVariables()
495  {
496  unset(‪$GLOBALS['PAGES_TYPES']);
497  unset(‪$GLOBALS['TCA']);
498  unset(‪$GLOBALS['TBE_MODULES']);
499  unset(‪$GLOBALS['TBE_STYLES']);
500  unset(‪$GLOBALS['BE_USER']);
501  // Those set otherwise:
502  unset(‪$GLOBALS['TBE_MODULES_EXT']);
503  unset(‪$GLOBALS['TCA_DESCR']);
504  unset(‪$GLOBALS['LOCAL_LANG']);
505  }
506 
516  public static function ‪loadBaseTca(bool $allowCaching = true, ‪FrontendInterface $coreCache = null)
517  {
518  if ($allowCaching) {
519  $coreCache = $coreCache ?? GeneralUtility::makeInstance(CacheManager::class)->getCache('core');
520  }
521  ‪ExtensionManagementUtility::loadBaseTca($allowCaching, $coreCache);
522  }
523 
527  protected static function ‪checkEncryptionKey()
528  {
529  if (empty(‪$GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey'])) {
530  throw new \RuntimeException(
531  'TYPO3 Encryption is empty. $GLOBALS[\'TYPO3_CONF_VARS\'][\'SYS\'][\'encryptionKey\'] needs to be set for TYPO3 to work securely',
532  1502987245
533  );
534  }
535  }
536 
546  public static function ‪loadExtTables(bool $allowCaching = true)
547  {
549  static::runExtTablesPostProcessingHooks();
550  }
551 
557  protected static function ‪runExtTablesPostProcessingHooks()
558  {
559  foreach (‪$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['GLOBAL']['extTablesInclusion-PostProcessing'] ?? [] as $className) {
561  $hookObject = GeneralUtility::makeInstance($className);
562  if (!$hookObject instanceof ‪TableConfigurationPostProcessingHookInterface) {
563  throw new \UnexpectedValueException(
564  '$hookObject "' . $className . '" must implement interface TYPO3\\CMS\\Core\\Database\\TableConfigurationPostProcessingHookInterface',
565  1320585902
566  );
567  }
568  $hookObject->processData();
569  }
570  }
571 
579  public static function ‪initializeBackendRouter()
580  {
581  // TODO: Once typo3/testing-framework is adapted, this code can be dropped / deprecated. As DI is already
582  // loading all routes on demand, this method is not needed anymore.
583  }
584 
591  public static function ‪initializeBackendUser($className = BackendUserAuthentication::class)
592  {
594  $backendUser = GeneralUtility::makeInstance($className);
595  // The global must be available very early, because methods below
596  // might trigger code which relies on it. See: #45625
597  ‪$GLOBALS['BE_USER'] = $backendUser;
598  $backendUser->start();
599  }
600 
607  public static function ‪initializeBackendAuthentication($proceedIfNoUserIsLoggedIn = false)
608  {
609  ‪$GLOBALS['BE_USER']->backendCheckLogin($proceedIfNoUserIsLoggedIn);
610  }
611 
617  public static function ‪initializeLanguageObject()
618  {
621  }
622 }
‪TYPO3\CMS\Core\DependencyInjection\Cache\ContainerBackend
Definition: ContainerBackend.php:26
‪TYPO3\CMS\Core\Core\Bootstrap\baseSetup
‪static baseSetup()
Definition: Bootstrap.php:189
‪TYPO3\CMS\Core\Core\Bootstrap\initializeIO
‪static initializeIO()
Definition: Bootstrap.php:459
‪TYPO3\CMS\Core\Core\Bootstrap\loadTypo3LoadedExtAndExtLocalconf
‪static loadTypo3LoadedExtAndExtLocalconf($allowCaching=true, FrontendInterface $coreCache=null)
Definition: Bootstrap.php:278
‪TYPO3\CMS\Core\Package\FailsafePackageManager
Definition: FailsafePackageManager.php:26
‪TYPO3\CMS\Core\Core\Bootstrap\initializeRuntimeActivatedPackagesFromConfiguration
‪static initializeRuntimeActivatedPackagesFromConfiguration(PackageManager $packageManager)
Definition: Bootstrap.php:260
‪TYPO3\CMS\Core\Core\Bootstrap\unsetReservedGlobalVariables
‪static unsetReservedGlobalVariables()
Definition: Bootstrap.php:494
‪TYPO3\CMS\Core\IO\PharStreamWrapperInterceptor
Definition: PharStreamWrapperInterceptor.php:28
‪TYPO3\CMS\Core\Cache\Frontend\PhpFrontend
Definition: PhpFrontend.php:25
‪TYPO3\CMS\Core\Cache\Exception\InvalidBackendException
Definition: InvalidBackendException.php:24
‪TYPO3\CMS\Core\Core\Bootstrap\initializeBackendAuthentication
‪static initializeBackendAuthentication($proceedIfNoUserIsLoggedIn=false)
Definition: Bootstrap.php:607
‪TYPO3\CMS\Core\Core\ClassLoadingInformation\isClassLoadingInformationAvailable
‪static bool isClassLoadingInformationAvailable()
Definition: ClassLoadingInformation.php:82
‪TYPO3\CMS\Core\Cache\Backend\Typo3DatabaseBackend
Definition: Typo3DatabaseBackend.php:31
‪TYPO3\CMS\Core\Core\Bootstrap\createCache
‪static FrontendInterface createCache(string $identifier, bool $disableCaching=false)
Definition: Bootstrap.php:321
‪TYPO3\CMS\Core\Core\Bootstrap\checkEncryptionKey
‪static checkEncryptionKey()
Definition: Bootstrap.php:527
‪TYPO3\CMS\Core\Core\Bootstrap\createPackageManager
‪static PackageManager createPackageManager($packageManagerClassName, FrontendInterface $coreCache)
Definition: Bootstrap.php:243
‪TYPO3\CMS\Core\Core\Bootstrap\setMemoryLimit
‪static setMemoryLimit()
Definition: Bootstrap.php:481
‪TYPO3\CMS\Core\Core\Bootstrap\init
‪static ContainerInterface init(ClassLoader $classLoader, bool $failsafe=false)
Definition: Bootstrap.php:75
‪TYPO3\CMS\Core\Core\Bootstrap\initializeClassLoader
‪static initializeClassLoader(ClassLoader $classLoader)
Definition: Bootstrap.php:205
‪TYPO3\CMS\Core\Core\Environment\getContext
‪static ApplicationContext getContext()
Definition: Environment.php:133
‪TYPO3\CMS\Core\Core\Bootstrap\loadBaseTca
‪static loadBaseTca(bool $allowCaching=true, FrontendInterface $coreCache=null)
Definition: Bootstrap.php:516
‪TYPO3\CMS\Core\Utility\ExtensionManagementUtility
Definition: ExtensionManagementUtility.php:43
‪TYPO3\CMS\Core\Localization\LanguageService\createFromUserPreferences
‪static createFromUserPreferences(?AbstractUserAuthentication $user)
Definition: LanguageService.php:435
‪TYPO3\CMS\Core\Cache\Backend\BackendInterface
Definition: BackendInterface.php:25
‪TYPO3\CMS\Core\Core\Bootstrap\setDefaultTimezone
‪static setDefaultTimezone()
Definition: Bootstrap.php:360
‪TYPO3\CMS\Core\Page\PageRenderer
Definition: PageRenderer.php:42
‪TYPO3\CMS\Core\Core\Bootstrap\initializeLanguageObject
‪static initializeLanguageObject()
Definition: Bootstrap.php:617
‪TYPO3\CMS\Core\Utility\ExtensionManagementUtility\setPackageManager
‪static setPackageManager(PackageManager $packageManager)
Definition: ExtensionManagementUtility.php:66
‪TYPO3\CMS\Core\Core\Bootstrap\initializeErrorHandling
‪static initializeErrorHandling()
Definition: Bootstrap.php:381
‪TYPO3\CMS\Core\Cache\Frontend\VariableFrontend
Definition: VariableFrontend.php:25
‪TYPO3\CMS\Core\Cache\Backend\NullBackend
Definition: NullBackend.php:22
‪TYPO3\CMS\Core\Imaging\IconRegistry
Definition: IconRegistry.php:38
‪TYPO3\CMS\Core\Page\PageRenderer\setCache
‪static setCache(FrontendInterface $cache)
Definition: PageRenderer.php:350
‪TYPO3\CMS\Core\Cache\CacheManager
Definition: CacheManager.php:35
‪TYPO3\CMS\Core\Service\DependencyOrderingService
Definition: DependencyOrderingService.php:32
‪TYPO3\CMS\Core\Authentication\BackendUserAuthentication
Definition: BackendUserAuthentication.php:62
‪TYPO3\CMS\Core\Core\Bootstrap\initializeBackendUser
‪static initializeBackendUser($className=BackendUserAuthentication::class)
Definition: Bootstrap.php:591
‪TYPO3\CMS\Core\Core\Bootstrap\initializeBasicErrorReporting
‪static initializeBasicErrorReporting()
Definition: Bootstrap.php:450
‪TYPO3\CMS\Core\Cache\Exception\InvalidCacheException
Definition: InvalidCacheException.php:24
‪TYPO3\CMS\Core\Core\Bootstrap\initializeBackendRouter
‪static initializeBackendRouter()
Definition: Bootstrap.php:579
‪TYPO3\CMS\Core\Core\Bootstrap\runExtTablesPostProcessingHooks
‪static runExtTablesPostProcessingHooks()
Definition: Bootstrap.php:557
‪TYPO3\CMS\Core\Cache\Frontend\FrontendInterface
Definition: FrontendInterface.php:22
‪TYPO3\CMS\Core\Core\Environment\isComposerMode
‪static bool isComposerMode()
Definition: Environment.php:144
‪TYPO3\CMS\Core\Utility\StringUtility\getUniqueId
‪static string getUniqueId($prefix='')
Definition: StringUtility.php:92
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:5
‪TYPO3\CMS\Core\Log\LogManager
Definition: LogManager.php:30
‪TYPO3\CMS\Core\Core
Definition: ApplicationContext.php:16
‪TYPO3\CMS\Core\Core\Bootstrap
Definition: Bootstrap.php:66
‪TYPO3\CMS\Core\Core\Bootstrap\checkIfEssentialConfigurationExists
‪static bool checkIfEssentialConfigurationExists(ConfigurationManager $configurationManager)
Definition: Bootstrap.php:228
‪TYPO3\CMS\Core\Core\Bootstrap\populateLocalConfiguration
‪static populateLocalConfiguration(ConfigurationManager $configurationManager)
Definition: Bootstrap.php:304
‪TYPO3\CMS\Core\Core\Bootstrap\loadExtTables
‪static loadExtTables(bool $allowCaching=true)
Definition: Bootstrap.php:546
‪TYPO3\CMS\Core\Core\ClassLoadingInformation\registerClassLoadingInformation
‪static registerClassLoadingInformation()
Definition: ClassLoadingInformation.php:134
‪TYPO3\CMS\Core\Utility\ExtensionManagementUtility\loadExtTables
‪static loadExtTables($allowCaching=true)
Definition: ExtensionManagementUtility.php:1773
‪TYPO3\CMS\Core\Utility\ExtensionManagementUtility\loadBaseTca
‪static loadBaseTca($allowCaching=true, FrontendInterface $codeCache=null)
Definition: ExtensionManagementUtility.php:1637
‪TYPO3\CMS\Core\Database\TableConfigurationPostProcessingHookInterface
Definition: TableConfigurationPostProcessingHookInterface.php:22
‪TYPO3\CMS\Core\Localization\LanguageService
Definition: LanguageService.php:42
‪TYPO3\CMS\Core\Core\Bootstrap\createConfigurationManager
‪static ConfigurationManager createConfigurationManager()
Definition: Bootstrap.php:292
‪TYPO3\CMS\Core\Utility\ExtensionManagementUtility\setEventDispatcher
‪static setEventDispatcher(EventDispatcherInterface $eventDispatcher)
Definition: ExtensionManagementUtility.php:81
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:46
‪TYPO3\CMS\Core\Utility\ExtensionManagementUtility\loadExtLocalconf
‪static loadExtLocalconf($allowCaching=true, FrontendInterface $codeCache=null)
Definition: ExtensionManagementUtility.php:1550
‪TYPO3\CMS\Core\Utility\StringUtility
Definition: StringUtility.php:22
‪TYPO3\CMS\Core\Core\Bootstrap\startOutputBuffering
‪static startOutputBuffering()
Definition: Bootstrap.php:175
‪TYPO3\CMS\Core\Imaging\IconRegistry\setCache
‪static setCache(FrontendInterface $cache)
Definition: IconRegistry.php:460
‪TYPO3\CMS\Core\Core\Environment\getLegacyConfigPath
‪static string getLegacyConfigPath()
Definition: Environment.php:282
‪TYPO3\CMS\Core\Core\ClassLoadingInformation\setClassLoader
‪static setClassLoader(ClassLoader $classLoader)
Definition: ClassLoadingInformation.php:71