PHP Class Neos\Flow\Configuration\ConfigurationManager

Datei anzeigen Open project: neos/flow-development-collection Class Usage Examples

Protected Properties

Property Type Description
$cacheNeedsUpdate boolean
$configurationSource Neos\Flow\Configuration\Source\YamlSource
$configurationTypes array Defines which Configuration Type is processed by which logic
$configurations array Storage of the raw special configurations
$context Neos\Flow\Core\ApplicationContext The application context of the configuration to manage
$orderedListOfContextNames array Example: Development, Development/Foo, Development/Foo/Bar
$packages array Active packages to load the configuration for
$subRoutesRecursionLevel integer Counts how many SubRoutes have been loaded. If this number exceeds MAXIMUM_SUBROUTE_RECURSIONS, an exception is thrown
$temporaryDirectoryPath string An absolute file path to store configuration caches in. If null no cache will be active.

Public Methods

Method Description
__construct ( ApplicationContext $context ) Constructs the configuration manager
flushConfigurationCache ( ) : void If a cache file with previously saved configuration exists, it is removed.
getAvailableConfigurationTypes ( ) : array Get the available configuration-types
getConfiguration ( string $configurationType, string $configurationPath = null ) : array Returns the specified raw configuration.
injectConfigurationSource ( YamlSource $configurationSource ) : void Injects the configuration source
isSplitSourceAllowedForConfigurationType ( string $configurationType ) : boolean Check the allowSplitSource setting for the configuration type.
loadConfigurationCache ( ) : boolean If a cache file with previously saved configuration exists, it is loaded.
registerConfigurationType ( string $configurationType, string $configurationProcessingType = self::CONFIGURATION_PROCESSING_TYPE_DEFAULT, boolean $allowSplitSource = false ) : void Registers a new configuration type with the given configuration processing type.
resolveConfigurationProcessingType ( string $configurationType ) : string Resolve the processing type for the configuration type.
setPackages ( array $packages ) : void Sets the active packages to load the configuration for
setTemporaryDirectoryPath ( string $temporaryDirectoryPath ) Set an absolute file path to store configuration caches in. If null no cache will be active.
shutdown ( ) : void Shuts down the configuration manager.
warmup ( ) : void Warms up the complete configuration cache, i.e. fetching every configured configuration type in order to be able to store it into the cache, if configured to do so.

Protected Methods

Method Description
buildSubRouteConfigurations ( array $routesConfiguration, array $subRoutesConfiguration, string $subRouteKey, array $subRouteOptions ) : array Merges all routes in $routesConfiguration with the sub routes in $subRoutesConfiguration
constructConfigurationCachePath ( ) : string Constructs a path to the configuration cache PHP file.
emitConfigurationManagerReady ( ConfigurationManager $configurationManager ) : void Emits a signal after The ConfigurationManager has been loaded
includeSubRoutesFromSettings ( array &$routeDefinitions ) : void Merges routes from Neos.Flow.mvc.routes settings into $routeDefinitions NOTE: Routes from settings will always be appended to existing route definitions from the main Routes configuration!
loadConfiguration ( string $configurationType, array $packages ) : void Loads special configuration defined in the specified packages and merges them with those potentially existing in the global configuration folders. The result is stored in the configuration manager's configuration registry and can be retrieved with the getConfiguration() method.
mergePolicyConfiguration ( array $firstConfigurationArray, array $secondConfigurationArray ) : array Merges two policy configuration arrays.
mergeRoutesWithSubRoutes ( array &$routesConfiguration ) : void Loads specified sub routes and builds composite routes.
postProcessConfiguration ( array &$configurations ) : void Post processes the given configuration array by replacing constants with their actual value.
replacePlaceholders ( string $string, array $variables ) : string Replaces placeholders in the format with the corresponding variable of the specified $variables collection.
replaceVariablesInValue ( string $value ) : mixed Replaces variables (in the format %CONSTANT% or %ENV::ENVIRONMENT_VARIABLE) in the given (configuration) value string.
saveConfigurationCache ( ) : void Saves the current configuration into a cache file and creates a cache inclusion script in the context's Configuration directory.
validatePolicyConfiguration ( array $policyConfiguration, Neos\Flow\Package\PackageInterface $package ) : void Validates the given $policyConfiguration and throws an exception if its not valid

Method Details

__construct() public method

Constructs the configuration manager
public __construct ( ApplicationContext $context )
$context Neos\Flow\Core\ApplicationContext The application context to fetch configuration for

buildSubRouteConfigurations() protected method

Merges all routes in $routesConfiguration with the sub routes in $subRoutesConfiguration
protected buildSubRouteConfigurations ( array $routesConfiguration, array $subRoutesConfiguration, string $subRouteKey, array $subRouteOptions ) : array
$routesConfiguration array
$subRoutesConfiguration array
$subRouteKey string the key of the sub route:
$subRouteOptions array
return array the merged route configuration

constructConfigurationCachePath() protected method

Derived from the temporary path and application context.

emitConfigurationManagerReady() protected method

Emits a signal after The ConfigurationManager has been loaded
protected emitConfigurationManagerReady ( ConfigurationManager $configurationManager ) : void
$configurationManager ConfigurationManager
return void

flushConfigurationCache() public method

If a cache file with previously saved configuration exists, it is removed.
public flushConfigurationCache ( ) : void
return void

getAvailableConfigurationTypes() public method

Get the available configuration-types
public getAvailableConfigurationTypes ( ) : array
return array

getConfiguration() public method

The actual configuration will be merged from different sources in a defined order. Note that this is a low level method and mostly makes sense to be used by Flow internally. If possible just use settings and have them injected.
public getConfiguration ( string $configurationType, string $configurationPath = null ) : array
$configurationType string The kind of configuration to fetch - must be one of the CONFIGURATION_TYPE_* constants
$configurationPath string The path inside the configuration to fetch
return array The configuration

includeSubRoutesFromSettings() protected method

Merges routes from Neos.Flow.mvc.routes settings into $routeDefinitions NOTE: Routes from settings will always be appended to existing route definitions from the main Routes configuration!
protected includeSubRoutesFromSettings ( array &$routeDefinitions ) : void
$routeDefinitions array
return void

injectConfigurationSource() public method

Injects the configuration source
public injectConfigurationSource ( YamlSource $configurationSource ) : void
$configurationSource Neos\Flow\Configuration\Source\YamlSource
return void

isSplitSourceAllowedForConfigurationType() public method

Check the allowSplitSource setting for the configuration type.
public isSplitSourceAllowedForConfigurationType ( string $configurationType ) : boolean
$configurationType string
return boolean

loadConfiguration() protected method

Loads special configuration defined in the specified packages and merges them with those potentially existing in the global configuration folders. The result is stored in the configuration manager's configuration registry and can be retrieved with the getConfiguration() method.
protected loadConfiguration ( string $configurationType, array $packages ) : void
$configurationType string The kind of configuration to load - must be one of the CONFIGURATION_TYPE_* constants
$packages array An array of Package objects (indexed by package key) to consider
return void

loadConfigurationCache() public method

If a cache file with previously saved configuration exists, it is loaded.
public loadConfigurationCache ( ) : boolean
return boolean If cached configuration was loaded or not

mergePolicyConfiguration() protected method

Merges two policy configuration arrays.
protected mergePolicyConfiguration ( array $firstConfigurationArray, array $secondConfigurationArray ) : array
$firstConfigurationArray array
$secondConfigurationArray array
return array

mergeRoutesWithSubRoutes() protected method

Loads specified sub routes and builds composite routes.
protected mergeRoutesWithSubRoutes ( array &$routesConfiguration ) : void
$routesConfiguration array
return void

postProcessConfiguration() protected method

Post processes the given configuration array by replacing constants with their actual value.
protected postProcessConfiguration ( array &$configurations ) : void
$configurations array
return void

registerConfigurationType() public method

The processing type must be supported by the ConfigurationManager, see CONFIGURATION_PROCESSING_TYPE_* for what is available.
public registerConfigurationType ( string $configurationType, string $configurationProcessingType = self::CONFIGURATION_PROCESSING_TYPE_DEFAULT, boolean $allowSplitSource = false ) : void
$configurationType string The type to register, may be anything
$configurationProcessingType string One of CONFIGURATION_PROCESSING_TYPE_*, defaults to CONFIGURATION_PROCESSING_TYPE_DEFAULT
$allowSplitSource boolean If TRUE, the type will be used as a "prefix" when looking for split configuration. Only supported for DEFAULT and SETTINGS processing types!
return void

replacePlaceholders() protected method

Replaces placeholders in the format with the corresponding variable of the specified $variables collection.
protected replacePlaceholders ( string $string, array $variables ) : string
$string string
$variables array
return string

replaceVariablesInValue() protected method

Replaces variables (in the format %CONSTANT% or %ENV::ENVIRONMENT_VARIABLE) in the given (configuration) value string.
protected replaceVariablesInValue ( string $value ) : mixed
$value string
return mixed

resolveConfigurationProcessingType() public method

This returns the CONFIGURATION_PROCESSING_TYPE_* to use for the given $configurationType.
public resolveConfigurationProcessingType ( string $configurationType ) : string
$configurationType string
return string

saveConfigurationCache() protected method

Saves the current configuration into a cache file and creates a cache inclusion script in the context's Configuration directory.
protected saveConfigurationCache ( ) : void
return void

setPackages() public method

Sets the active packages to load the configuration for
public setPackages ( array $packages ) : void
$packages array
return void

setTemporaryDirectoryPath() public method

Set an absolute file path to store configuration caches in. If null no cache will be active.
public setTemporaryDirectoryPath ( string $temporaryDirectoryPath )
$temporaryDirectoryPath string

shutdown() public method

This method writes the current configuration into a cache file if Flow was configured to do so.
public shutdown ( ) : void
return void

validatePolicyConfiguration() protected method

Validates the given $policyConfiguration and throws an exception if its not valid
protected validatePolicyConfiguration ( array $policyConfiguration, Neos\Flow\Package\PackageInterface $package ) : void
$policyConfiguration array
$package Neos\Flow\Package\PackageInterface
return void

warmup() public method

Warms up the complete configuration cache, i.e. fetching every configured configuration type in order to be able to store it into the cache, if configured to do so.
See also: Neos\Flow\Configuration\ConfigurationManager::shutdown
public warmup ( ) : void
return void

Property Details

$cacheNeedsUpdate protected_oe property

protected bool $cacheNeedsUpdate
return boolean

$configurationSource protected_oe property

protected YamlSource,Neos\Flow\Configuration\Source $configurationSource
return Neos\Flow\Configuration\Source\YamlSource

$configurationTypes protected_oe property

Defines which Configuration Type is processed by which logic
protected array $configurationTypes
return array

$configurations protected_oe property

Storage of the raw special configurations
protected array $configurations
return array

$context protected_oe property

The application context of the configuration to manage
protected ApplicationContext,Neos\Flow\Core $context
return Neos\Flow\Core\ApplicationContext

$orderedListOfContextNames protected_oe property

Example: Development, Development/Foo, Development/Foo/Bar
protected array $orderedListOfContextNames
return array

$packages protected_oe property

Active packages to load the configuration for
protected array $packages
return array

$subRoutesRecursionLevel protected_oe property

Counts how many SubRoutes have been loaded. If this number exceeds MAXIMUM_SUBROUTE_RECURSIONS, an exception is thrown
protected int $subRoutesRecursionLevel
return integer

$temporaryDirectoryPath protected_oe property

An absolute file path to store configuration caches in. If null no cache will be active.
protected string $temporaryDirectoryPath
return string