PHP Class Neos\Flow\ObjectManagement\CompileTimeObjectManager

Inheritance: extends ObjectManager
Mostra file Open project: neos/flow-development-collection Class Usage Examples

Protected Properties

Property Type Description
$cachedClassNamesByScope array
$configurationCache Neos\Cache\Frontend\VariableFrontend
$configurationManager Neos\Flow\Configuration\ConfigurationManager
$objectConfigurations array
$objectNameBuildStack array
$reflectionService Neos\Flow\Reflection\ReflectionService
$registeredClassNames array A list of all class names known to the Object Manager
$systemLogger Neos\Flow\Log\SystemLoggerInterface

Public Methods

Method Description
get ( string $objectName ) : object Returns a fresh or existing instance of the object specified by $objectName.
getClassNamesByScope ( integer $scope ) : array Returns a list of class names, which are configured with the given scope
getObjectConfigurations ( ) : array Returns object configurations which were previously built by the ConfigurationBuilder.
getRegisteredClassNames ( ) : array Returns a list of all class names, grouped by package key, which were registered by registerClassFiles()
initialize ( array $packages ) : void Initializes the the object configurations and some other parts of this Object Manager.
injectConfigurationCache ( Neos\Cache\Frontend\VariableFrontend $configurationCache ) : void Injects the configuration cache of the Object Framework
injectConfigurationManager ( ConfigurationManager $configurationManager ) : void
injectReflectionService ( ReflectionService $reflectionService ) : void
injectSystemLogger ( Neos\Flow\Log\SystemLoggerInterface $systemLogger ) : void
setInstance ( string $objectName, object $instance ) : void Sets the instance of the given object
shutdown ( ) : void Shuts down this Object Container by calling the shutdown methods of all object instances which were configured to be shut down.

Protected Methods

Method Description
applyClassFilterConfiguration ( array $classNames, array $filterConfiguration, string $includeOrExclude = 'include' ) : array Filters the classnames available for object management by filter expressions that either include or exclude classes.
buildObjectsArray ( ) : array Builds the objects array which contains information about the registered objects, their scope, class, built method etc.
collectExcludedPackages ( array $registeredPackageKeys ) : array Explodes the regular expressions for package name in excludeClasses configuration to full package names.
filterClassNamesFromConfiguration ( array $classNames, array $includeClassesConfiguration ) : array Given an array of class names by package key this filters out classes that have been configured to be excluded or included by object management.
registerClassFiles ( array $packages ) : array Traverses through all class files of the active packages and registers collects the class names as "all available class names". If the respective Flow settings say so, also function test classes are registered.

Method Details

applyClassFilterConfiguration() protected method

Filters the classnames available for object management by filter expressions that either include or exclude classes.
protected applyClassFilterConfiguration ( array $classNames, array $filterConfiguration, string $includeOrExclude = 'include' ) : array
$classNames array All classnames per package
$filterConfiguration array The filter configuration to apply
$includeOrExclude string if this is an "include" or "exclude" filter
return array the remaining class

buildObjectsArray() protected method

Builds the objects array which contains information about the registered objects, their scope, class, built method etc.
protected buildObjectsArray ( ) : array
return array

collectExcludedPackages() protected method

Explodes the regular expressions for package name in excludeClasses configuration to full package names.
protected collectExcludedPackages ( array $registeredPackageKeys ) : array
$registeredPackageKeys array
return array

filterClassNamesFromConfiguration() protected method

Given an array of class names by package key this filters out classes that have been configured to be excluded or included by object management.
protected filterClassNamesFromConfiguration ( array $classNames, array $includeClassesConfiguration ) : array
$classNames array 2-level array - key of first level is package key, value of second level is classname (FQN)
$includeClassesConfiguration array array of includeClasses configurations
return array The input array with all configured to be excluded from object management filtered out

get() public method

This specialized get() method is able to do setter injection for properties defined in the object configuration of the specified object.
public get ( string $objectName ) : object
$objectName string The name of the object to return an instance of
return object The object instance

getClassNamesByScope() public method

Returns a list of class names, which are configured with the given scope
public getClassNamesByScope ( integer $scope ) : array
$scope integer One of the ObjectConfiguration::SCOPE_ constants
return array An array of class names configured with the given scope

getObjectConfigurations() public method

Returns object configurations which were previously built by the ConfigurationBuilder.
public getObjectConfigurations ( ) : array
return array

getRegisteredClassNames() public method

Returns a list of all class names, grouped by package key, which were registered by registerClassFiles()
public getRegisteredClassNames ( ) : array
return array

initialize() public method

Initializes the the object configurations and some other parts of this Object Manager.
public initialize ( array $packages ) : void
$packages array An array of active packages to consider
return void

injectConfigurationCache() public method

Injects the configuration cache of the Object Framework
public injectConfigurationCache ( Neos\Cache\Frontend\VariableFrontend $configurationCache ) : void
$configurationCache Neos\Cache\Frontend\VariableFrontend
return void

injectConfigurationManager() public method

public injectConfigurationManager ( ConfigurationManager $configurationManager ) : void
$configurationManager Neos\Flow\Configuration\ConfigurationManager
return void

injectReflectionService() public method

public injectReflectionService ( ReflectionService $reflectionService ) : void
$reflectionService Neos\Flow\Reflection\ReflectionService
return void

injectSystemLogger() public method

public injectSystemLogger ( Neos\Flow\Log\SystemLoggerInterface $systemLogger ) : void
$systemLogger Neos\Flow\Log\SystemLoggerInterface
return void

registerClassFiles() protected method

For performance reasons this function ignores classes whose name ends with "Exception".
protected registerClassFiles ( array $packages ) : array
$packages array A list of packages to consider
return array A list of class names which were discovered in the given packages

setInstance() public method

In the Compile Time Object Manager it is even allowed to set instances of not-yet-known objects as long as the Object Manager is not initialized, because some few parts need an object registry even before the Object Manager is fully functional.
public setInstance ( string $objectName, object $instance ) : void
$objectName string The object name
$instance object A prebuilt instance
return void

shutdown() public method

Shuts down this Object Container by calling the shutdown methods of all object instances which were configured to be shut down.
public shutdown ( ) : void
return void

Property Details

$cachedClassNamesByScope protected_oe property

protected array $cachedClassNamesByScope
return array

$configurationCache protected_oe property

protected VariableFrontend,Neos\Cache\Frontend $configurationCache
return Neos\Cache\Frontend\VariableFrontend

$configurationManager protected_oe property

protected ConfigurationManager,Neos\Flow\Configuration $configurationManager
return Neos\Flow\Configuration\ConfigurationManager

$objectConfigurations protected_oe property

protected array $objectConfigurations
return array

$objectNameBuildStack protected_oe property

protected array $objectNameBuildStack
return array

$reflectionService protected_oe property

protected ReflectionService,Neos\Flow\Reflection $reflectionService
return Neos\Flow\Reflection\ReflectionService

$registeredClassNames protected_oe property

A list of all class names known to the Object Manager
protected array $registeredClassNames
return array

$systemLogger protected_oe property

protected SystemLoggerInterface,Neos\Flow\Log $systemLogger
return Neos\Flow\Log\SystemLoggerInterface