Environment

This class is initialized once in the SystemEnvironmentBuilder, and can then be used throughout the application to access common variables related to path-resolving and OS-/PHP-application specific information.

It's main design goal is to remove any access to constants within TYPO3 code and to provide a static, for TYPO3 core and extensions non-changeable information.

This class does not contain any HTTP related information, as this is handled in NormalizedParams functionality.

All path-related methods do return the realpath to the paths without (!) the trailing slash.

This class only defines what is configured through the environment, does not do any checks if paths exist etc. This should be part of the application or the SystemEnvironmentBuilder.

In your application, use it like this:

Instead of writing "TYPO3_REQUESTTYPE & TYPO3_REQUESTTYPE_CLI" call "Environment::isCli()"

Table of Contents

Properties

$cli  : bool
$composerMode  : bool
$composerRootPath  : string
$configPath  : string
$context  : ApplicationContext
$currentScript  : string
$os  : string
$projectPath  : string
$publicPath  : string
$supportedCgiServerApis  : array<string|int, mixed>
A list of supported CGI server APIs
$varPath  : string

Methods

getBackendPath()  : string
Previously known as PATH_typo3 Please note that this might be gone at some point
getComposerRootPath()  : string
In most cases in composer-mode setups this is the same as project path.
getConfigPath()  : string
The folder where all global (= installation-wide) configuration like - LocalConfiguration.php, - AdditionalConfiguration.php, and - PackageStates.php is put.
getContext()  : ApplicationContext
Delivers the ApplicationContext object, usually defined in TYPO3_CONTEXT environment variables.
getCurrentScript()  : string
The path + filename to the current PHP script.
getExtensionsPath()  : string
Please note that this might be gone at some point
getFrameworkBasePath()  : string
Previously known as PATH_typo3 . 'sysext/' Please note that this might be gone at some point
getLabelsPath()  : string
Previously found under typo3conf/l10n/ Please note that this might be gone at some point
getLegacyConfigPath()  : string
Previously known as PATH_typo3conf Please note that this might be gone at some point
getProjectPath()  : string
The root path to the project. For installations set up via composer, this is the path where your composer.json file is stored. For non-composer-setups, this is (due to legacy reasons) the public web folder where the TYPO3 installation has been unzipped (something like htdocs/ or public/ on your webfolder).
getPublicPath()  : string
The public web folder where index.php (= the frontend application) is put, without trailing slash.
getVarPath()  : string
The folder where variable data like logs, sessions, locks, and cache files can be stored.
initialize()  : mixed
Sets up the Environment. Please note that this is not public API and only used within the very early Set up of TYPO3, or to be used within tests. If you ever call this method in your extension, you're probably doing something wrong. Never call this method! Never rely on it!
isCli()  : bool
Whether the current PHP request is handled by a CLI SAPI module or not.
isComposerMode()  : bool
Informs whether TYPO3 has been installed via composer or not. Typically this is useful inside the Maintenance Modules, or the Extension Manager.
isRunningOnCgiServer()  : bool
Returns true if the server is running on a list of supported CGI server APIs.
isUnix()  : bool
Whether this TYPO3 installation runs on unix (= non-windows machines)
isWindows()  : bool
Whether this TYPO3 installation runs on windows
toArray()  : array<string|int, mixed>
Returns the currently configured Environment information as array.
usesCgiFixPathInfo()  : bool

Properties

$composerMode

protected static bool $composerMode

$composerRootPath

protected static string $composerRootPath

$configPath

protected static string $configPath

$currentScript

protected static string $currentScript

$projectPath

protected static string $projectPath

$publicPath

protected static string $publicPath

$supportedCgiServerApis

A list of supported CGI server APIs

protected static array<string|int, mixed> $supportedCgiServerApis = ['fpm-fcgi', 'cgi', 'isapi', 'cgi-fcgi', 'srv']

Methods

getBackendPath()

Previously known as PATH_typo3 Please note that this might be gone at some point

public static getBackendPath() : string
Return values
string

getComposerRootPath()

In most cases in composer-mode setups this is the same as project path.

public static getComposerRootPath() : string

However since the project path is configurable, the paths may differ. In future versions this configurability will go away and this method will be removed. This path is only required for some internal path handling regarding package paths until then.

Internal
Return values
string

The absolute path to the composer root directory without the trailing slash

getConfigPath()

The folder where all global (= installation-wide) configuration like - LocalConfiguration.php, - AdditionalConfiguration.php, and - PackageStates.php is put.

public static getConfigPath() : string

This folder usually has to be writable for TYPO3 in order to work.

When project path = public path, then this folder is usually typo3conf/, otherwise it's set to $project_path/config.

Return values
string

getContext()

Delivers the ApplicationContext object, usually defined in TYPO3_CONTEXT environment variables.

public static getContext() : ApplicationContext

This is something like "Production", "Testing", or "Development" or any additional information "Production/Staging".

Return values
ApplicationContext

getCurrentScript()

The path + filename to the current PHP script.

public static getCurrentScript() : string
Return values
string

getExtensionsPath()

Please note that this might be gone at some point

public static getExtensionsPath() : string
Return values
string

getFrameworkBasePath()

Previously known as PATH_typo3 . 'sysext/' Please note that this might be gone at some point

public static getFrameworkBasePath() : string
Return values
string

getLabelsPath()

Previously found under typo3conf/l10n/ Please note that this might be gone at some point

public static getLabelsPath() : string
Return values
string

getLegacyConfigPath()

Previously known as PATH_typo3conf Please note that this might be gone at some point

public static getLegacyConfigPath() : string
Return values
string

getProjectPath()

The root path to the project. For installations set up via composer, this is the path where your composer.json file is stored. For non-composer-setups, this is (due to legacy reasons) the public web folder where the TYPO3 installation has been unzipped (something like htdocs/ or public/ on your webfolder).

public static getProjectPath() : string

However, non-composer-mode installations define an environment variable called "TYPO3_PATH_APP" to define a different folder (usually a parent folder) to allow TYPO3 to access and store data outside of the public web folder.

Return values
string

The absolute path to the project without the trailing slash

getPublicPath()

The public web folder where index.php (= the frontend application) is put, without trailing slash.

public static getPublicPath() : string

For non-composer installations, the project path = the public path.

Return values
string

getVarPath()

The folder where variable data like logs, sessions, locks, and cache files can be stored.

public static getVarPath() : string

When project path = public path, then this folder is usually typo3temp/var/, otherwise it's set to $project_path/var.

Return values
string

initialize()

Sets up the Environment. Please note that this is not public API and only used within the very early Set up of TYPO3, or to be used within tests. If you ever call this method in your extension, you're probably doing something wrong. Never call this method! Never rely on it!

public static initialize(ApplicationContext $context, bool $cli, bool $composerMode, string $projectPath, string $publicPath, string $varPath, string $configPath, string $currentScript, string $os) : mixed
Parameters
$context : ApplicationContext
$cli : bool
$composerMode : bool
$projectPath : string
$publicPath : string
$varPath : string
$configPath : string
$currentScript : string
$os : string
Internal

isCli()

Whether the current PHP request is handled by a CLI SAPI module or not.

public static isCli() : bool
Return values
bool

isComposerMode()

Informs whether TYPO3 has been installed via composer or not. Typically this is useful inside the Maintenance Modules, or the Extension Manager.

public static isComposerMode() : bool
Return values
bool

isRunningOnCgiServer()

Returns true if the server is running on a list of supported CGI server APIs.

public static isRunningOnCgiServer() : bool
Return values
bool

isUnix()

Whether this TYPO3 installation runs on unix (= non-windows machines)

public static isUnix() : bool
Return values
bool

isWindows()

Whether this TYPO3 installation runs on windows

public static isWindows() : bool
Return values
bool

toArray()

Returns the currently configured Environment information as array.

public static toArray() : array<string|int, mixed>
Return values
array<string|int, mixed>

usesCgiFixPathInfo()

public static usesCgiFixPathInfo() : bool
Return values
bool

        
On this page

Search results