Property | Type | Description | |
---|---|---|---|
$aspectContainers | array | A registry of all known aspects | |
$blacklistedSubPackages | array | Hardcoded list of Flow sub packages (first 15 characters) which must be immune to AOP proxying for security, technical or conceptual reasons. | |
$compiler | |||
$methodInterceptorBuilders | array | ||
$objectConfigurationCache | Neos\Cache\Frontend\VariableFrontend | ||
$objectManager | |||
$pointcutExpressionParser | An instance of the pointcut expression parser | ||
$proxyClassBuilder | |||
$reflectionService | |||
$settings | array | The Flow settings | |
$systemLogger | Neos\Flow\Log\SystemLoggerInterface |
Method | Description | |
---|---|---|
build ( ) : void | Builds proxy class code which weaves advices into the respective target classes. | |
buildProxyClass ( string $targetClassName, array &$aspectContainers ) : boolean | Builds methods for a single AOP proxy class for the specified class. | |
findPointcut ( string $aspectClassName, string $pointcutMethodName ) : mixed | Traverses the aspect containers to find a pointcut from the aspect class name and pointcut method name | |
injectAdvicedConstructorInterceptorBuilder ( |
Injects the Adviced Constructor Interceptor Builder | |
injectAdvicedMethodInterceptorBuilder ( |
Injects the Adviced Method Interceptor Builder | |
injectCompiler ( |
||
injectObjectConfigurationCache ( Neos\Cache\Frontend\VariableFrontend $objectConfigurationCache ) : void | Injects the cache for storing information about objects | |
injectObjectManager ( |
||
injectPointcutExpressionParser ( |
Injects an instance of the pointcut expression parser | |
injectReflectionService ( |
Injects the reflection service | |
injectSettings ( array $settings ) : void | Injects the Flow settings | |
injectSystemLogger ( Neos\Flow\Log\SystemLoggerInterface $systemLogger ) : void |
Method | Description | |
---|---|---|
addAdvicedMethodsToInterceptedMethods ( array &$interceptedMethods, array $methods, string $targetClassName, array &$aspectContainers ) : void | Traverses all aspect containers, their aspects and their advisors and adds the methods and their advices to the (usually empty) array of intercepted methods. | |
addBuildMethodsAndAdvicesCodeToClass ( string $className, |
Adds code to build the methods and advices array in case the parent class has some. | |
addIntroducedMethodsToInterceptedMethods ( array &$interceptedMethods, array $methodsFromIntroducedInterfaces ) : void | Traverses all methods which were introduced by interfaces and adds them to the intercepted methods array if they didn't exist already. | |
buildAspectContainer ( string $aspectClassName ) : mixed | Creates and returns an aspect from the annotations found in a class which is tagged as an aspect. The object acting as an advice will already be fetched (and therefore instantiated if necessary). | |
buildAspectContainers ( array &$classNames ) : array | Checks the annotations of the specified classes for aspect tags and creates an aspect with advisors accordingly. | |
buildMethodsAndAdvicesArrayCode ( array $methodsAndGroupedAdvices ) : string | Creates code for an array of target methods and their advices. | |
buildMethodsInterceptorCode ( string $targetClassName, array $interceptedMethods ) : void | Traverses all intercepted methods and their advices and builds PHP code to intercept methods if necessary. | |
getInterfaceNamesFromIntroductions ( array $interfaceIntroductions ) : array | Returns an array of interface names introduced by the given introductions | |
getIntroducedMethodsFromInterfaceIntroductions ( array $interfaceIntroductions ) : array | Returns all methods declared by the introduced interfaces | |
getMatchingInterfaceIntroductions ( array &$aspectContainers, string $targetClassName ) : array | Traverses all aspect containers and returns an array of interface introductions which match the target class. | |
getMatchingPropertyIntroductions ( array &$aspectContainers, string $targetClassName ) : array | |
Traverses all aspect containers and returns an array of property introductions which match the target class. | |
getMatchingTraitNamesFromIntroductions ( array &$aspectContainers, string $targetClassName ) : array | Traverses all aspect containers and returns an array of trait introductions which match the target class. | |
getMethodsFromTargetClass ( string $targetClassName ) : array | Returns the methods of the target class. | |
getProxyableClasses ( array $classNamesByPackage ) : array | Determines which of the given classes are potentially proxyable and returns their names in an array. | |
proxySubClassesOfClassToEnsureAdvices ( string $className, |
Makes sure that any sub classes of an adviced class also build the advices array on construction. | |
renderSourceHint ( string $aspectClassName, string $methodName, string $tagName ) : string | Renders a short message which gives a hint on where the currently parsed pointcut expression was defined. |
protected addAdvicedMethodsToInterceptedMethods ( array &$interceptedMethods, array $methods, string $targetClassName, array &$aspectContainers ) : void | ||
$interceptedMethods | array | |
$methods | array | An array of class and method names which are matched against the pointcut (class name = name of the class or interface the method was declared) |
$targetClassName | string | Name of the class the pointcut should match with |
$aspectContainers | array | |
return | void |
protected addBuildMethodsAndAdvicesCodeToClass ( string $className, |
||
$className | string | |
$treatedSubClasses | ||
return |
protected buildAspectContainer ( string $aspectClassName ) : mixed | ||
$aspectClassName | string | Name of the class which forms the aspect, contains advices etc. |
return | mixed | The aspect container containing one or more advisors or FALSE if no container could be built |
protected buildAspectContainers ( array &$classNames ) : array | ||
$classNames | array | |
return | array | An array of Aop\AspectContainer for all aspects which were found. |
protected buildMethodsAndAdvicesArrayCode ( array $methodsAndGroupedAdvices ) : string | ||
$methodsAndGroupedAdvices | array | An array of method names and grouped advice objects |
return | string | PHP code for the content of an array of target method names and advice objects |
protected getInterfaceNamesFromIntroductions ( array $interfaceIntroductions ) : array | ||
$interfaceIntroductions | array | An array of interface introductions |
return | array | Array of interface names |
protected getIntroducedMethodsFromInterfaceIntroductions ( array $interfaceIntroductions ) : array | ||
$interfaceIntroductions | array | An array of Aop\InterfaceIntroduction |
return | array | An array of method information (interface, method name) |
protected getMatchingPropertyIntroductions ( array &$aspectContainers, string $targetClassName ) : array | |
||
$aspectContainers | array | |
$targetClassName | string | Name of the class the pointcut should match with |
return | array | |
array of property introductions |
protected getMethodsFromTargetClass ( string $targetClassName ) : array | ||
$targetClassName | string | Name of the target class |
return | array | Method information with declaring class and method name pairs |
protected getProxyableClasses ( array $classNamesByPackage ) : array | ||
$classNamesByPackage | array | Names of the classes to check |
return | array | Names of classes which can be proxied |
public injectAdvicedConstructorInterceptorBuilder ( |
||
$builder | ||
return | void |
public injectAdvicedMethodInterceptorBuilder ( |
||
$builder | ||
return | void |
public injectCompiler ( |
||
$compiler | ||
return | void |
public injectObjectConfigurationCache ( Neos\Cache\Frontend\VariableFrontend $objectConfigurationCache ) : void | ||
$objectConfigurationCache | Neos\Cache\Frontend\VariableFrontend | |
return | void |
public injectObjectManager ( |
||
$objectManager | ||
return | void |
public injectPointcutExpressionParser ( |
||
$pointcutExpressionParser | ||
return | void |
public injectReflectionService ( |
||
$reflectionService | ||
return | void |
public injectSettings ( array $settings ) : void | ||
$settings | array | The settings |
return | void |
public injectSystemLogger ( Neos\Flow\Log\SystemLoggerInterface $systemLogger ) : void | ||
$systemLogger | Neos\Flow\Log\SystemLoggerInterface | |
return | void |
protected proxySubClassesOfClassToEnsureAdvices ( string $className, |
||
$className | string | The adviced class name |
$targetClassNameCandidates | target class names for advices | |
$treatedSubClasses | Already treated (sub) classes to avoid duplication | |
return | The new collection of already treated classes |
protected array $aspectContainers | ||
return | array |
protected array $blacklistedSubPackages | ||
return | array |
protected Compiler,Neos\Flow\ObjectManagement\Proxy $compiler | ||
return |
protected array $methodInterceptorBuilders | ||
return | array |
protected VariableFrontend,Neos\Cache\Frontend $objectConfigurationCache | ||
return | Neos\Cache\Frontend\VariableFrontend |
protected CompileTimeObjectManager,Neos\Flow\ObjectManagement $objectManager | ||
return |
protected PointcutExpressionParser,Neos\Flow\Aop\Pointcut $pointcutExpressionParser | ||
return |
protected ProxyClassBuilder,Neos\Flow\Aop\Builder $proxyClassBuilder | ||
return |
protected ReflectionService,Neos\Flow\Reflection $reflectionService | ||
return |