Bootstrap
This class encapsulates bootstrap related methods.
It is required directly as the very first thing in entry scripts and used to define all base things like constants and paths and so on.
Most methods in this class have dependencies to each other. They can not be called in arbitrary order. The methods are ordered top down, so a method at the beginning has lower dependencies than a method further down. Do not fiddle with the load order in own scripts except you know exactly what you are doing!
Table of Contents
Methods
- baseSetup() : mixed
 - Run the base setup that checks server environment, determines paths, populates base files and sets common configuration.
 - checkIfEssentialConfigurationExists() : bool
 - checks if config/system/settings.php or PackageStates.php is missing, used to see if a redirect to the installer is needed
 - createCache() : FrontendInterface
 - Instantiates an early cache instance
 - createConfigurationManager() : ConfigurationManager
 - We need an early instance of the configuration manager.
 - createPackageCache() : PackageCacheInterface
 - createPackageManager() : PackageManager
 - Initializes the package system and loads the package configuration and settings provided by the packages.
 - init() : ContainerInterface
 - Bootstrap TYPO3 and return a Container that may be used to initialize an Application class.
 - initializeBackendAuthentication() : mixed
 - Initializes and ensures authenticated access
 - initializeBackendUser() : mixed
 - Initialize backend user object in globals
 - initializeClassLoader() : mixed
 - Sets the class loader to the bootstrap
 - initializeLanguageObject() : mixed
 - Initialize language object
 - loadBaseTca() : mixed
 - Load $TCA
 - loadExtTables() : mixed
 - Load ext_tables and friends.
 - loadTypo3LoadedExtAndExtLocalconf() : mixed
 - Load ext_localconf of extensions
 - startOutputBuffering() : mixed
 - Prevent any unwanted output that may corrupt AJAX/compression.
 - unsetReservedGlobalVariables() : mixed
 - Unsetting reserved global variables: Those are set in "ext:core/ext_tables.php" file:
 - checkEncryptionKey() : mixed
 - Check if a configuration key has been configured
 - initializeErrorHandling() : mixed
 - Configure and set up exception and error handling
 - populateLocalConfiguration() : mixed
 - We need an early instance of the configuration manager.
 - setDefaultTimezone() : mixed
 - Set default timezone
 - setMemoryLimit() : mixed
 - Set PHP memory limit depending on value of $GLOBALS['TYPO3_CONF_VARS']['SYS']['setMemoryLimit']
 
Methods
baseSetup()
Run the base setup that checks server environment, determines paths, populates base files and sets common configuration.
    public
            static        baseSetup() : mixed
    Script execution will be aborted if something fails here.
This is not a public API method, do not use in own extensions
checkIfEssentialConfigurationExists()
checks if config/system/settings.php or PackageStates.php is missing, used to see if a redirect to the installer is needed
    public
            static        checkIfEssentialConfigurationExists(ConfigurationManager $configurationManager) : bool
    All file_exists checks are delayed as far as possible to avoid I/O impact
Parameters
- $configurationManager : ConfigurationManager
 
This is not a public API method, do not use in own extensions
Return values
bool —TRUE when the essential configuration is available, otherwise FALSE
createCache()
Instantiates an early cache instance
    public
            static        createCache(string $identifier[, bool $disableCaching = false ]) : FrontendInterface
    Creates a cache instances independently from the CacheManager. The is used to create the core cache during early bootstrap when the CacheManager is not yet available (i.e. configuration is not yet loaded).
Parameters
- $identifier : string
 - $disableCaching : bool = false
 
Return values
FrontendInterfacecreateConfigurationManager()
We need an early instance of the configuration manager.
    public
            static        createConfigurationManager() : ConfigurationManager
    Since makeInstance relies on the object configuration, we create it here with new instead.
Return values
ConfigurationManagercreatePackageCache()
    public
            static        createPackageCache(FrontendInterface $coreCache) : PackageCacheInterface
    Parameters
- $coreCache : FrontendInterface
 
Return values
PackageCacheInterfacecreatePackageManager()
Initializes the package system and loads the package configuration and settings provided by the packages.
    public
            static        createPackageManager(string $packageManagerClassName, PackageCacheInterface $packageCache) : PackageManager
    Parameters
- $packageManagerClassName : string
 - 
                    
Define an alternative package manager implementation (usually for the installer)
 - $packageCache : PackageCacheInterface
 
This is not a public API method, do not use in own extensions
Return values
PackageManagerinit()
Bootstrap TYPO3 and return a Container that may be used to initialize an Application class.
    public
            static        init(ClassLoader $classLoader[, bool $failsafe = false ]) : ContainerInterface
    Parameters
- $classLoader : ClassLoader
 - 
                    
an instance of the class loader
 - $failsafe : bool = false
 - 
                    
true if no caching and a failsafe package manager should be used
 
Return values
ContainerInterfaceinitializeBackendAuthentication()
Initializes and ensures authenticated access
    public
            static        initializeBackendAuthentication() : mixed
    This is not a public API method, do not use in own extensions
initializeBackendUser()
Initialize backend user object in globals
    public
            static        initializeBackendUser([string $className = BackendUserAuthentication::class ][, ServerRequestInterface|null $request = null ]) : mixed
    Parameters
- $className : string = BackendUserAuthentication::class
 - 
                    
usually \TYPO3\CMS\Core\Authentication\BackendUserAuthentication::class but can be used for CLI
 - $request : ServerRequestInterface|null = null
 
This is not a public API method, do not use in own extensions
initializeClassLoader()
Sets the class loader to the bootstrap
    public
            static        initializeClassLoader(ClassLoader $classLoader) : mixed
    Parameters
- $classLoader : ClassLoader
 - 
                    
an instance of the class loader
 
This is not a public API method, do not use in own extensions
initializeLanguageObject()
Initialize language object
    public
            static        initializeLanguageObject() : mixed
    This is not a public API method, do not use in own extensions
loadBaseTca()
Load $TCA
    public
            static        loadBaseTca([bool $allowCaching = true ][, FrontendInterface|null $coreCache = null ]) : mixed
    This will mainly set up $TCA through extMgm API.
Parameters
- $allowCaching : bool = true
 - 
                    
True, if loading TCA from cache is allowed
 - $coreCache : FrontendInterface|null = null
 
This is not a public API method, do not use in own extensions
loadExtTables()
Load ext_tables and friends.
    public
            static        loadExtTables([bool $allowCaching = true ][, FrontendInterface|null $coreCache = null ]) : mixed
    This will mainly load and execute ext_tables.php files of loaded extensions or the according cache file if exists.
Parameters
- $allowCaching : bool = true
 - 
                    
True, if reading compiled ext_tables file from cache is allowed
 - $coreCache : FrontendInterface|null = null
 
This is not a public API method, do not use in own extensions
loadTypo3LoadedExtAndExtLocalconf()
Load ext_localconf of extensions
    public
            static        loadTypo3LoadedExtAndExtLocalconf([bool $allowCaching = true ][, FrontendInterface|null $coreCache = null ]) : mixed
    Parameters
- $allowCaching : bool = true
 - $coreCache : FrontendInterface|null = null
 
This is not a public API method, do not use in own extensions
startOutputBuffering()
Prevent any unwanted output that may corrupt AJAX/compression.
    public
            static        startOutputBuffering() : mixed
    This does not interfere with "die()" or "echo"+"exit()" messages!
This is not a public API method, do not use in own extensions
unsetReservedGlobalVariables()
Unsetting reserved global variables: Those are set in "ext:core/ext_tables.php" file:
    public
            static        unsetReservedGlobalVariables() : mixed
    This is not a public API method, do not use in own extensions
checkEncryptionKey()
Check if a configuration key has been configured
    protected
            static        checkEncryptionKey() : mixed
    initializeErrorHandling()
Configure and set up exception and error handling
    protected
            static        initializeErrorHandling() : mixed
    Tags
populateLocalConfiguration()
We need an early instance of the configuration manager.
    protected
            static        populateLocalConfiguration(ConfigurationManager $configurationManager) : mixed
    Since makeInstance relies on the object configuration, we create it here with new instead.
Parameters
- $configurationManager : ConfigurationManager
 
This is not a public API method, do not use in own extensions
setDefaultTimezone()
Set default timezone
    protected
            static        setDefaultTimezone() : mixed
    setMemoryLimit()
Set PHP memory limit depending on value of $GLOBALS['TYPO3_CONF_VARS']['SYS']['setMemoryLimit']
    protected
            static        setMemoryLimit() : mixed