PHP 클래스 Neos\Flow\Reflection\ReflectionService

Reflection of classes of all active packages is triggered through the bootstrap's initializeReflectionService() method. In a development context, single classes may be re-reflected once files are modified whereas in a production context reflection is done once and successive requests read from the frozen caches for performance reasons. The list of available classes is determined by the CompiletimeObjectManager which also triggers the initial build of reflection data in this service. The invalidation of reflection cache entries is done by the CacheManager which in turn is triggered by signals sent by the file monitor. The internal representation of cache data is optimized for memory consumption and speed by using constants which have an integer value.
파일 보기 프로젝트 열기: neos/flow-development-collection 1 사용 예제들

보호된 프로퍼티들

프로퍼티 타입 설명
$annotatedClasses array Array of annotation classnames and the names of classes which are annotated with them
$annotationReader Doctrine\Common\Annotations\Reader
$availableClassNames array
$classLoader Neos\Flow\Core\ClassLoader
$classReflectionData array Array with reflection information indexed by class name
$classSchemata array<\Neos\Flow\Reflection\ClassSchema> Schemata of all classes which can be persisted
$classSchemataRuntimeCache Neos\Cache\Frontend\VariableFrontend
$classesByMethodAnnotations array Array of method annotations and the classes and methods which are annotated with them
$classesCurrentlyBeingForgotten array An array of class names which are currently being forgotten by forgetClass(). Acts as a safeguard against infinite loops.
$context Neos\Flow\Core\ApplicationContext
$doctrinePhpParser Doctrine\Common\Annotations\PhpParser Note: Don't refer to this member directly but use getDoctrinePhpParser() to obtain an instance
$environment Neos\Flow\Utility\Environment
$initialized boolean
$loadFromClassSchemaRuntimeCache boolean In Production context, with frozen caches, this flag will be TRUE
$packageManager Neos\Flow\Package\PackageManagerInterface
$reflectionDataCompiletimeCache Neos\Cache\Frontend\VariableFrontend
$reflectionDataRuntimeCache Neos\Cache\Frontend\VariableFrontend
$settings array
$statusCache Neos\Cache\Frontend\StringFrontend
$systemLogger Neos\Flow\Log\SystemLoggerInterface
$updatedReflectionData array Array with updated reflection information (e.g. in Development context after classes have changed)
$useStatementsForClassCache array a cache which stores the use statements reflected for a particular class (only relevant for un-expanded "var" and "param" annotations)

공개 메소드들

메소드 설명
buildReflectionData ( array $availableClassNames ) : void Builds the reflection data cache during compile time.
freezePackageReflection ( string $packageKey ) : void Stores the current reflection data related to classes of the specified package in the PrecompiledReflectionData directory for the current context.
getAllClassNames ( ) : array Returns the names of all classes known to this reflection service.
getAllImplementationClassNamesForInterface ( string $interfaceName ) : array Searches for and returns all class names of implementations of the given object type (interface name). If no class implementing the interface was found, an empty array is returned.
getAllSubClassNamesForClass ( string $className ) : array Searches for and returns all names of classes inheriting the specified class.
getClassAnnotation ( string $className, string $annotationClassName ) : object Returns the specified class annotation or NULL.
getClassAnnotations ( string $className, string $annotationClassName = null ) : array Returns the specified class annotations or an empty array
getClassNameByObject ( object $object ) : string Returns the class name of the given object. This is a convenience method that returns the expected class names even for proxy classes.
getClassNamesByAnnotation ( string $annotationClassName ) : array Searches for and returns all names of classes which are tagged by the specified annotation. If no classes were found, an empty array is returned.
getClassPropertyNames ( string $className ) : array Returns the names of all properties of the specified class
getClassSchema ( mixed $classNameOrObject ) : ClassSchema Returns the class schema for the given class
getClassesContainingMethodsAnnotatedWith ( string $annotationClassName ) : array Returns all class names of classes containing at least one method annotated with the given annotation class
getDefaultImplementationClassNameForInterface ( string $interfaceName ) : mixed Searches for and returns the class name of the default implementation of the given interface name. If no class implementing the interface was found or more than one implementation was found in the package defining the interface, FALSE is returned.
getMethodAnnotation ( string $className, string $methodName, string $annotationClassName ) : object Returns the specified method annotation or NULL.
getMethodAnnotations ( string $className, string $methodName, string $annotationClassName = null ) : array Returns the specified method annotations or an empty array
getMethodDeclaredReturnType ( string $className, string $methodName ) : string Returns the declared return type of a method (for PHP < 7.0 this will always return null)
getMethodParameters ( string $className, string $methodName ) : array Returns an array of parameters of the given method. Each entry contains additional information about the parameter position, type hint etc.
getMethodTagsValues ( string $className, string $methodName ) : array Returns all tags and their values the specified method is tagged with
getMethodsAnnotatedWith ( string $className, string $annotationClassName ) : array Returns all names of methods of the given class that are annotated with the given annotation class
getPropertyAnnotation ( string $className, string $propertyName, string $annotationClassName ) : object Returns the specified property annotation or NULL.
getPropertyAnnotations ( string $className, string $propertyName, string $annotationClassName = null ) : array Returns the specified property annotations or an empty array
getPropertyNamesByAnnotation ( string $className, string $annotationClassName ) : array Searches for and returns all names of class properties which are marked by the specified annotation. If no properties were found, an empty array is returned.
getPropertyNamesByTag ( string $className, string $tag ) : array Searches for and returns all names of class properties which are tagged by the specified tag.
getPropertyTagValues ( string $className, string $propertyName, string $tag ) : array Returns the values of the specified class property tag
getPropertyTagsValues ( string $className, string $propertyName ) : array Returns all tags and their values the specified class property is tagged with
hasMethod ( string $className, string $methodName ) : boolean Wrapper for method_exists() which tells if the given method exists.
injectClassLoader ( ClassLoader $classLoader ) : void
injectEnvironment ( Environment $environment ) : void
injectPackageManager ( Neos\Flow\Package\PackageManagerInterface $packageManager ) : void
injectSettings ( array $settings ) : void
injectSystemLogger ( Neos\Flow\Log\SystemLoggerInterface $systemLogger ) : void
isClassAbstract ( string $className ) : boolean Tells if the specified class is abstract or not
isClassAnnotatedWith ( string $className, string $annotationClassName ) : boolean Tells if the specified class has the given annotation
isClassFinal ( string $className ) : boolean Tells if the specified class is final or not
isClassImplementationOf ( string $className, string $interfaceName ) : boolean Tells if the specified class implements the given interface
isClassReflected ( string $className ) : boolean Tells if the specified class is known to this reflection service and reflection information is available.
isClassUnconfigurable ( string $className ) : boolean Tells if the class is unconfigurable or not
isMethodAnnotatedWith ( string $className, string $methodName, string $annotationClassName ) : boolean Tells if the specified method has the given annotation
isMethodFinal ( string $className, string $methodName ) : boolean Tells if the specified method is final or not
isMethodPrivate ( string $className, string $methodName ) : boolean Tells if the specified method is private
isMethodProtected ( string $className, string $methodName ) : boolean Tells if the specified method is protected
isMethodPublic ( string $className, string $methodName ) : boolean Tells if the specified method is public
isMethodStatic ( string $className, string $methodName ) : boolean Tells if the specified method is declared as static or not
isMethodTaggedWith ( string $className, string $methodName, string $tag ) : boolean Tells if the specified method is tagged with the given tag
isPropertyAnnotatedWith ( string $className, string $propertyName, string $annotationClassName ) : boolean Tells if the specified property has the given annotation
isPropertyPrivate ( string $className, string $propertyName ) : boolean Tells if the specified property is private
isPropertyTaggedWith ( string $className, string $propertyName, string $tag ) : boolean Tells if the specified class property is tagged with the given tag
reflectClassProperty ( string $className, PropertyReflection $property ) : integer
saveToCache ( ) : void Exports the internal reflection data into the ReflectionData cache
setClassSchemataRuntimeCache ( Neos\Cache\Frontend\VariableFrontend $cache ) : void Sets the dedicated class schema cache for runtime purposes
setReflectionDataCompiletimeCache ( Neos\Cache\Frontend\VariableFrontend $cache ) : void Sets the compile-time data cache
setReflectionDataRuntimeCache ( Neos\Cache\Frontend\VariableFrontend $cache ) : void Sets the runtime data cache
setStatusCache ( StringFrontend $cache ) : void Sets the status cache
unfreezePackageReflection ( string $packageKey ) : void Removes the precompiled reflection data of a frozen package

보호된 메소드들

메소드 설명
addImplementedInterface ( string $className, ClassReflection $interface )
addParentClass ( string $className, ClassReflection $parentClass ) : void
addPropertiesToClassSchema ( ClassSchema $classSchema ) : void Adds properties of the class at hand to the class schema.
buildClassSchema ( string $className ) : ClassSchema Builds a class schema for the given class name.
buildClassSchemata ( array $classNames ) : void Builds class schemata from classes annotated as entities or value objects
checkValueObjectRequirements ( string $className ) : void Checks if the given class meets the requirements for a value object, i.e.
cleanClassName ( string $className ) : string Clean a given class name from possibly prefixed backslash
completeRepositoryAssignments ( ) : void Complete repository-to-entity assignments.
convertParameterDataToArray ( array $parametersInformation ) : array Converts the internal, optimized data structure of parameter information into a human-friendly array with speaking indexes.
convertParameterReflectionToArray ( ParameterReflection $parameter, MethodReflection $method = null ) : array Converts the given parameter reflection into an information array
ensureAggregateRootInheritanceChainConsistency ( ) : void Checks whether all aggregate roots having superclasses have a repository assigned up to the tip of their hierarchy.
evaluateClassPropertyAnnotationsForSchema ( ClassSchema $classSchema, string $propertyName ) : boolean
expandType ( ClassReflection $class, string $type ) : string Expand shortened class names in "var" and "param" annotations, taking use statements into account.
filterArrayByClassesInNamespace ( array $array, string $packageNamespace ) : array Filter an array of entries were keys are class names by being in the given package namespace.
forgetChangedClasses ( ) : void Checks which classes lack a cache entry and removes their reflection data accordingly.
forgetClass ( string $className ) : void Forgets all reflection data related to the specified class
getDoctrinePhpParser ( ) : Doctrine\Common\Annotations\PhpParser Retrieves a singleton instance of the Doctrine PhpParser
getParentClasses ( ClassReflection $class, array $parentClasses = [] ) : array Finds all parent classes of the given class
getPrecompiledReflectionStoragePath ( ) : string Determines the path to the precompiled reflection data.
hasFrozenCacheInProduction ( ) : boolean
initialize ( ) : void Initialize the reflection service lazily
isTagIgnored ( string $tagName ) : boolean Check if a specific annotation tag is configured to be ignored.
loadClassReflectionCompiletimeCache ( ) : boolean Tries to load the reflection data from the compile time cache.
loadOrReflectClassIfNecessary ( string $className ) : void Loads reflection data from the cache or reflects the class if needed.
log ( string $message, integer $severity = LOG_INFO, mixed $additionalData = null ) : void Writes the given message along with the additional information into the log.
makeChildClassesAggregateRoot ( ClassSchema $classSchema ) : void Assigns the repository of any aggregate root to all it's subclasses, unless they are aggregate root already.
prepareClassReflectionForUsage ( string $className ) : string Initializes the ReflectionService, cleans the given class name and finally reflects the class if necessary.
produceCacheIdentifierFromClassName ( string $className ) : string Transform backslashes to underscores to provide an valid cache identifier.
reflectClass ( string $className ) : void Reflects the given class and stores the results in this service's properties.
reflectClassMethod ( string $className, MethodReflection $method ) : void
reflectClassMethodParameter ( string $className, MethodReflection $method, ParameterReflection $parameter ) : void
reflectEmergedClasses ( ) : void Checks if the given class names match those which already have been reflected. If the given array contains class names not yet known to this service, these classes will be reflected.
reflectPropertyTag ( string $className, PropertyReflection $property, string $tagName, array $tagValues ) : array
saveDevelopmentData ( ) Save reflection data to cache in Development context.
saveProductionData ( ) Save reflection data to cache in Production context.
updateReflectionData ( ) Set updated reflection data to caches.

메소드 상세

addImplementedInterface() 보호된 메소드

protected addImplementedInterface ( string $className, ClassReflection $interface )
$className string
$interface ClassReflection

addParentClass() 보호된 메소드

protected addParentClass ( string $className, ClassReflection $parentClass ) : void
$className string
$parentClass ClassReflection
리턴 void

addPropertiesToClassSchema() 보호된 메소드

Properties will be added if they have a var annotation && (!transient-annotation && !inject-annotation) Invalid annotations will cause an exception to be thrown.
protected addPropertiesToClassSchema ( ClassSchema $classSchema ) : void
$classSchema ClassSchema
리턴 void

buildClassSchema() 보호된 메소드

Builds a class schema for the given class name.
protected buildClassSchema ( string $className ) : ClassSchema
$className string
리턴 ClassSchema

buildClassSchemata() 보호된 메소드

Builds class schemata from classes annotated as entities or value objects
protected buildClassSchemata ( array $classNames ) : void
$classNames array
리턴 void

buildReflectionData() 공개 메소드

This method is called by the CompiletimeObjectManager which also determines the list of classes to consider for reflection.
public buildReflectionData ( array $availableClassNames ) : void
$availableClassNames array List of all class names to consider for reflection
리턴 void

checkValueObjectRequirements() 보호된 메소드

does have a constructor and does not have any setter methods.
protected checkValueObjectRequirements ( string $className ) : void
$className string
리턴 void

cleanClassName() 보호된 메소드

Clean a given class name from possibly prefixed backslash
protected cleanClassName ( string $className ) : string
$className string
리턴 string

completeRepositoryAssignments() 보호된 메소드

This method looks for repositories that declare themselves responsible for a specific model and sets a repository classname on the corresponding models. It then walks the inheritance chain for all aggregate roots and checks the subclasses for their aggregate root status - if no repository is assigned yet, that will be done.
protected completeRepositoryAssignments ( ) : void
리턴 void

convertParameterDataToArray() 보호된 메소드

Converts the internal, optimized data structure of parameter information into a human-friendly array with speaking indexes.
protected convertParameterDataToArray ( array $parametersInformation ) : array
$parametersInformation array Raw, internal parameter information
리턴 array Developer friendly version

convertParameterReflectionToArray() 보호된 메소드

Converts the given parameter reflection into an information array
protected convertParameterReflectionToArray ( ParameterReflection $parameter, MethodReflection $method = null ) : array
$parameter ParameterReflection The parameter to reflect
$method MethodReflection The parameter's method
리턴 array Parameter information array

ensureAggregateRootInheritanceChainConsistency() 보호된 메소드

Checks whether all aggregate roots having superclasses have a repository assigned up to the tip of their hierarchy.

evaluateClassPropertyAnnotationsForSchema() 보호된 메소드

protected evaluateClassPropertyAnnotationsForSchema ( ClassSchema $classSchema, string $propertyName ) : boolean
$classSchema ClassSchema
$propertyName string
리턴 boolean

expandType() 보호된 메소드

Expand shortened class names in "var" and "param" annotations, taking use statements into account.
protected expandType ( ClassReflection $class, string $type ) : string
$class ClassReflection
$type string the type inside var/param annotation
리턴 string the possibly expanded type

filterArrayByClassesInNamespace() 보호된 메소드

Filter an array of entries were keys are class names by being in the given package namespace.
protected filterArrayByClassesInNamespace ( array $array, string $packageNamespace ) : array
$array array
$packageNamespace string
리턴 array

forgetChangedClasses() 보호된 메소드

Checks which classes lack a cache entry and removes their reflection data accordingly.
protected forgetChangedClasses ( ) : void
리턴 void

forgetClass() 보호된 메소드

Forgets all reflection data related to the specified class
protected forgetClass ( string $className ) : void
$className string Name of the class to forget
리턴 void

freezePackageReflection() 공개 메소드

This method is used by the package manager.
public freezePackageReflection ( string $packageKey ) : void
$packageKey string
리턴 void

getAllClassNames() 공개 메소드

Returns the names of all classes known to this reflection service.
public getAllClassNames ( ) : array
리턴 array Class names

getAllImplementationClassNamesForInterface() 공개 메소드

Searches for and returns all class names of implementations of the given object type (interface name). If no class implementing the interface was found, an empty array is returned.
public getAllImplementationClassNamesForInterface ( string $interfaceName ) : array
$interfaceName string Name of the interface
리턴 array An array of class names of the default implementation for the object type

getAllSubClassNamesForClass() 공개 메소드

If no class inheriting the given class was found, an empty array is returned.
public getAllSubClassNamesForClass ( string $className ) : array
$className string Name of the parent class
리턴 array An array of names of those classes being a direct or indirect subclass of the specified class

getClassAnnotation() 공개 메소드

If multiple annotations are set on the target you will get one (random) instance of them.
public getClassAnnotation ( string $className, string $annotationClassName ) : object
$className string Name of the class
$annotationClassName string Annotation to filter for
리턴 object

getClassAnnotations() 공개 메소드

Returns the specified class annotations or an empty array
public getClassAnnotations ( string $className, string $annotationClassName = null ) : array
$className string Name of the class
$annotationClassName string Annotation to filter for
리턴 array

getClassNameByObject() 공개 메소드

Returns the class name of the given object. This is a convenience method that returns the expected class names even for proxy classes.
사용 중단: since 3.0 use \Neos\Utility\TypeHandling::getTypeForValue() instead
public getClassNameByObject ( object $object ) : string
$object object
리턴 string The class name of the given object

getClassNamesByAnnotation() 공개 메소드

Searches for and returns all names of classes which are tagged by the specified annotation. If no classes were found, an empty array is returned.
public getClassNamesByAnnotation ( string $annotationClassName ) : array
$annotationClassName string Name of the annotation class, for example "Neos\Flow\Annotations\Aspect"
리턴 array

getClassPropertyNames() 공개 메소드

Returns the names of all properties of the specified class
public getClassPropertyNames ( string $className ) : array
$className string Name of the class to return the property names of
리턴 array An array of property names or an empty array if none exist

getClassSchema() 공개 메소드

Returns the class schema for the given class
public getClassSchema ( mixed $classNameOrObject ) : ClassSchema
$classNameOrObject mixed The class name or an object
리턴 ClassSchema

getClassesContainingMethodsAnnotatedWith() 공개 메소드

Returns all class names of classes containing at least one method annotated with the given annotation class
public getClassesContainingMethodsAnnotatedWith ( string $annotationClassName ) : array
$annotationClassName string The annotation class name for a method annotation
리턴 array An array of class names

getDefaultImplementationClassNameForInterface() 공개 메소드

Searches for and returns the class name of the default implementation of the given interface name. If no class implementing the interface was found or more than one implementation was found in the package defining the interface, FALSE is returned.
public getDefaultImplementationClassNameForInterface ( string $interfaceName ) : mixed
$interfaceName string Name of the interface
리턴 mixed Either the class name of the default implementation for the object type or FALSE

getDoctrinePhpParser() 보호된 메소드

Retrieves a singleton instance of the Doctrine PhpParser
protected getDoctrinePhpParser ( ) : Doctrine\Common\Annotations\PhpParser
리턴 Doctrine\Common\Annotations\PhpParser

getMethodAnnotation() 공개 메소드

If multiple annotations are set on the target you will get one (random) instance of them.
public getMethodAnnotation ( string $className, string $methodName, string $annotationClassName ) : object
$className string Name of the class
$methodName string Name of the method
$annotationClassName string Annotation to filter for
리턴 object

getMethodAnnotations() 공개 메소드

Returns the specified method annotations or an empty array
public getMethodAnnotations ( string $className, string $methodName, string $annotationClassName = null ) : array
$className string Name of the class
$methodName string Name of the method
$annotationClassName string Annotation to filter for
리턴 array

getMethodDeclaredReturnType() 공개 메소드

Returns the declared return type of a method (for PHP < 7.0 this will always return null)
public getMethodDeclaredReturnType ( string $className, string $methodName ) : string
$className string
$methodName string
리턴 string The declared return type of the method or null if none was declared

getMethodParameters() 공개 메소드

Returns an array of parameters of the given method. Each entry contains additional information about the parameter position, type hint etc.
public getMethodParameters ( string $className, string $methodName ) : array
$className string Name of the class containing the method
$methodName string Name of the method to return parameter information of
리턴 array An array of parameter names and additional information or an empty array of no parameters were found

getMethodTagsValues() 공개 메소드

Returns all tags and their values the specified method is tagged with
public getMethodTagsValues ( string $className, string $methodName ) : array
$className string Name of the class containing the method
$methodName string Name of the method to return the tags and values of
리턴 array An array of tags and their values or an empty array of no tags were found

getMethodsAnnotatedWith() 공개 메소드

Returns all names of methods of the given class that are annotated with the given annotation class
public getMethodsAnnotatedWith ( string $className, string $annotationClassName ) : array
$className string Name of the class containing the method(s)
$annotationClassName string The annotation class name for a method annotation
리턴 array An array of method names

getParentClasses() 보호된 메소드

Finds all parent classes of the given class
protected getParentClasses ( ClassReflection $class, array $parentClasses = [] ) : array
$class ClassReflection The class to reflect
$parentClasses array Array of parent classes
리턴 array

getPrecompiledReflectionStoragePath() 보호된 메소드

Determines the path to the precompiled reflection data.

getPropertyAnnotation() 공개 메소드

If multiple annotations are set on the target you will get one (random) instance of them.
public getPropertyAnnotation ( string $className, string $propertyName, string $annotationClassName ) : object
$className string Name of the class
$propertyName string Name of the property
$annotationClassName string Annotation to filter for
리턴 object

getPropertyAnnotations() 공개 메소드

Returns the specified property annotations or an empty array
public getPropertyAnnotations ( string $className, string $propertyName, string $annotationClassName = null ) : array
$className string Name of the class
$propertyName string Name of the property
$annotationClassName string Annotation to filter for
리턴 array

getPropertyNamesByAnnotation() 공개 메소드

Searches for and returns all names of class properties which are marked by the specified annotation. If no properties were found, an empty array is returned.
public getPropertyNamesByAnnotation ( string $className, string $annotationClassName ) : array
$className string Name of the class containing the properties
$annotationClassName string Class name of the annotation to search for
리턴 array An array of property names carrying the annotation

getPropertyNamesByTag() 공개 메소드

If no properties were found, an empty array is returned.
public getPropertyNamesByTag ( string $className, string $tag ) : array
$className string Name of the class containing the properties
$tag string Tag to search for
리턴 array An array of property names tagged by the tag

getPropertyTagValues() 공개 메소드

Returns the values of the specified class property tag
public getPropertyTagValues ( string $className, string $propertyName, string $tag ) : array
$className string Name of the class containing the property
$propertyName string Name of the tagged property
$tag string Tag to return the values of
리턴 array An array of values or an empty array if the tag was not found

getPropertyTagsValues() 공개 메소드

Returns all tags and their values the specified class property is tagged with
public getPropertyTagsValues ( string $className, string $propertyName ) : array
$className string Name of the class containing the property
$propertyName string Name of the property to return the tags and values of
리턴 array An array of tags and their values or an empty array of no tags were found

hasFrozenCacheInProduction() 보호된 메소드

protected hasFrozenCacheInProduction ( ) : boolean
리턴 boolean

hasMethod() 공개 메소드

Wrapper for method_exists() which tells if the given method exists.
public hasMethod ( string $className, string $methodName ) : boolean
$className string Name of the class containing the method
$methodName string Name of the method
리턴 boolean

initialize() 보호된 메소드

This method must be run only after all dependencies have been injected.
protected initialize ( ) : void
리턴 void

injectClassLoader() 공개 메소드

public injectClassLoader ( ClassLoader $classLoader ) : void
$classLoader Neos\Flow\Core\ClassLoader
리턴 void

injectEnvironment() 공개 메소드

public injectEnvironment ( Environment $environment ) : void
$environment Neos\Flow\Utility\Environment
리턴 void

injectPackageManager() 공개 메소드

public injectPackageManager ( Neos\Flow\Package\PackageManagerInterface $packageManager ) : void
$packageManager Neos\Flow\Package\PackageManagerInterface
리턴 void

injectSettings() 공개 메소드

public injectSettings ( array $settings ) : void
$settings array Settings of the Flow package
리턴 void

injectSystemLogger() 공개 메소드

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

isClassAbstract() 공개 메소드

Tells if the specified class is abstract or not
public isClassAbstract ( string $className ) : boolean
$className string Name of the class to analyze
리턴 boolean TRUE if the class is abstract, otherwise FALSE

isClassAnnotatedWith() 공개 메소드

Tells if the specified class has the given annotation
public isClassAnnotatedWith ( string $className, string $annotationClassName ) : boolean
$className string Name of the class
$annotationClassName string Annotation to check for
리턴 boolean

isClassFinal() 공개 메소드

Tells if the specified class is final or not
public isClassFinal ( string $className ) : boolean
$className string Name of the class to analyze
리턴 boolean TRUE if the class is final, otherwise FALSE

isClassImplementationOf() 공개 메소드

Tells if the specified class implements the given interface
public isClassImplementationOf ( string $className, string $interfaceName ) : boolean
$className string Name of the class
$interfaceName string interface to check for
리턴 boolean TRUE if the class implements $interfaceName, otherwise FALSE

isClassReflected() 공개 메소드

Tells if the specified class is known to this reflection service and reflection information is available.
public isClassReflected ( string $className ) : boolean
$className string Name of the class
리턴 boolean If the class is reflected by this service

isClassUnconfigurable() 공개 메소드

Tells if the class is unconfigurable or not
public isClassUnconfigurable ( string $className ) : boolean
$className string Name of the class to analyze
리턴 boolean return TRUE if class not could not be automatically configured, otherwise FALSE

isMethodAnnotatedWith() 공개 메소드

Tells if the specified method has the given annotation
public isMethodAnnotatedWith ( string $className, string $methodName, string $annotationClassName ) : boolean
$className string Name of the class
$methodName string Name of the method
$annotationClassName string Annotation to check for
리턴 boolean

isMethodFinal() 공개 메소드

Tells if the specified method is final or not
public isMethodFinal ( string $className, string $methodName ) : boolean
$className string Name of the class containing the method
$methodName string Name of the method to analyze
리턴 boolean TRUE if the method is final, otherwise FALSE

isMethodPrivate() 공개 메소드

Tells if the specified method is private
public isMethodPrivate ( string $className, string $methodName ) : boolean
$className string Name of the class containing the method
$methodName string Name of the method to analyze
리턴 boolean TRUE if the method is private, otherwise FALSE

isMethodProtected() 공개 메소드

Tells if the specified method is protected
public isMethodProtected ( string $className, string $methodName ) : boolean
$className string Name of the class containing the method
$methodName string Name of the method to analyze
리턴 boolean TRUE if the method is protected, otherwise FALSE

isMethodPublic() 공개 메소드

Tells if the specified method is public
public isMethodPublic ( string $className, string $methodName ) : boolean
$className string Name of the class containing the method
$methodName string Name of the method to analyze
리턴 boolean TRUE if the method is public, otherwise FALSE

isMethodStatic() 공개 메소드

Tells if the specified method is declared as static or not
public isMethodStatic ( string $className, string $methodName ) : boolean
$className string Name of the class containing the method
$methodName string Name of the method to analyze
리턴 boolean TRUE if the method is static, otherwise FALSE

isMethodTaggedWith() 공개 메소드

Tells if the specified method is tagged with the given tag
public isMethodTaggedWith ( string $className, string $methodName, string $tag ) : boolean
$className string Name of the class containing the method
$methodName string Name of the method to analyze
$tag string Tag to check for
리턴 boolean TRUE if the method is tagged with $tag, otherwise FALSE

isPropertyAnnotatedWith() 공개 메소드

Tells if the specified property has the given annotation
public isPropertyAnnotatedWith ( string $className, string $propertyName, string $annotationClassName ) : boolean
$className string Name of the class
$propertyName string Name of the method
$annotationClassName string Annotation to check for
리턴 boolean

isPropertyPrivate() 공개 메소드

Tells if the specified property is private
public isPropertyPrivate ( string $className, string $propertyName ) : boolean
$className string Name of the class containing the method
$propertyName string Name of the property to analyze
리턴 boolean TRUE if the property is private, otherwise FALSE

isPropertyTaggedWith() 공개 메소드

Tells if the specified class property is tagged with the given tag
public isPropertyTaggedWith ( string $className, string $propertyName, string $tag ) : boolean
$className string Name of the class
$propertyName string Name of the property
$tag string Tag to check for
리턴 boolean TRUE if the class property is tagged with $tag, otherwise FALSE

isTagIgnored() 보호된 메소드

Check if a specific annotation tag is configured to be ignored.
protected isTagIgnored ( string $tagName ) : boolean
$tagName string The annotation tag to check
리턴 boolean TRUE if the tag is configured to be ignored, FALSE otherwise

loadClassReflectionCompiletimeCache() 보호된 메소드

The compile time cache is only supported for Development context and thus this function will return in any other context. If no reflection data was found, this method will at least load the precompiled reflection data of any possible frozen package. Even if precompiled reflection data could be loaded, FALSE will be returned in order to signal that other packages still need to be reflected.
protected loadClassReflectionCompiletimeCache ( ) : boolean
리턴 boolean TRUE if reflection data could be loaded, otherwise FALSE

loadOrReflectClassIfNecessary() 보호된 메소드

If the class is completely unknown, this method won't try to load or reflect it. If it is known and reflection data has been loaded already, it won't be loaded again. In Production context, with frozen caches, this method will load reflection data for the specified class from the runtime cache.
protected loadOrReflectClassIfNecessary ( string $className ) : void
$className string Name of the class to load data for
리턴 void

log() 보호된 메소드

Writes the given message along with the additional information into the log.
protected log ( string $message, integer $severity = LOG_INFO, mixed $additionalData = null ) : void
$message string The message to log
$severity integer An integer value, one of the LOG_* constants
$additionalData mixed A variable containing more information about the event to be logged
리턴 void

makeChildClassesAggregateRoot() 보호된 메소드

Assigns the repository of any aggregate root to all it's subclasses, unless they are aggregate root already.
protected makeChildClassesAggregateRoot ( ClassSchema $classSchema ) : void
$classSchema ClassSchema
리턴 void

prepareClassReflectionForUsage() 보호된 메소드

Initializes the ReflectionService, cleans the given class name and finally reflects the class if necessary.
protected prepareClassReflectionForUsage ( string $className ) : string
$className string
리턴 string The cleaned class name

produceCacheIdentifierFromClassName() 보호된 메소드

Transform backslashes to underscores to provide an valid cache identifier.
protected produceCacheIdentifierFromClassName ( string $className ) : string
$className string
리턴 string

reflectClass() 보호된 메소드

Reflects the given class and stores the results in this service's properties.
protected reflectClass ( string $className ) : void
$className string Full qualified name of the class to reflect
리턴 void

reflectClassMethod() 보호된 메소드

protected reflectClassMethod ( string $className, MethodReflection $method ) : void
$className string
$method MethodReflection
리턴 void

reflectClassMethodParameter() 보호된 메소드

protected reflectClassMethodParameter ( string $className, MethodReflection $method, ParameterReflection $parameter ) : void
$className string
$method MethodReflection
$parameter ParameterReflection
리턴 void

reflectClassProperty() 공개 메소드

public reflectClassProperty ( string $className, PropertyReflection $property ) : integer
$className string
$property PropertyReflection
리턴 integer visibility

reflectEmergedClasses() 보호된 메소드

Checks if the given class names match those which already have been reflected. If the given array contains class names not yet known to this service, these classes will be reflected.
protected reflectEmergedClasses ( ) : void
리턴 void

reflectPropertyTag() 보호된 메소드

protected reflectPropertyTag ( string $className, PropertyReflection $property, string $tagName, array $tagValues ) : array
$className string
$property PropertyReflection
$tagName string
$tagValues array
리턴 array

saveDevelopmentData() 보호된 메소드

Save reflection data to cache in Development context.
protected saveDevelopmentData ( )

saveProductionData() 보호된 메소드

Save reflection data to cache in Production context.
protected saveProductionData ( )

saveToCache() 공개 메소드

This method is triggered by a signal which is connected to the bootstrap's shutdown sequence. If the reflection data has previously been loaded from the runtime cache, saving it is omitted as changes are not expected. In Production context the whole cache is written at once and then frozen in order to be consistent. Frozen cache data in Development is only produced for classes contained in frozen packages.
public saveToCache ( ) : void
리턴 void

setClassSchemataRuntimeCache() 공개 메소드

Sets the dedicated class schema cache for runtime purposes
public setClassSchemataRuntimeCache ( Neos\Cache\Frontend\VariableFrontend $cache ) : void
$cache Neos\Cache\Frontend\VariableFrontend
리턴 void

setReflectionDataCompiletimeCache() 공개 메소드

Sets the compile-time data cache
public setReflectionDataCompiletimeCache ( Neos\Cache\Frontend\VariableFrontend $cache ) : void
$cache Neos\Cache\Frontend\VariableFrontend Cache for the reflection service
리턴 void

setReflectionDataRuntimeCache() 공개 메소드

Sets the runtime data cache
public setReflectionDataRuntimeCache ( Neos\Cache\Frontend\VariableFrontend $cache ) : void
$cache Neos\Cache\Frontend\VariableFrontend Cache for the reflection service
리턴 void

setStatusCache() 공개 메소드

The cache must be set before initializing the Reflection Service
public setStatusCache ( StringFrontend $cache ) : void
$cache Neos\Cache\Frontend\StringFrontend Cache for the reflection service
리턴 void

unfreezePackageReflection() 공개 메소드

This method is used by the package manager.
public unfreezePackageReflection ( string $packageKey ) : void
$packageKey string The package to remove the data from
리턴 void

updateReflectionData() 보호된 메소드

Set updated reflection data to caches.
protected updateReflectionData ( )

프로퍼티 상세

$annotatedClasses 보호되어 있는 프로퍼티

Array of annotation classnames and the names of classes which are annotated with them
protected array $annotatedClasses
리턴 array

$annotationReader 보호되어 있는 프로퍼티

protected Reader,Doctrine\Common\Annotations $annotationReader
리턴 Doctrine\Common\Annotations\Reader

$availableClassNames 보호되어 있는 프로퍼티

protected array $availableClassNames
리턴 array

$classLoader 보호되어 있는 프로퍼티

protected ClassLoader,Neos\Flow\Core $classLoader
리턴 Neos\Flow\Core\ClassLoader

$classReflectionData 보호되어 있는 프로퍼티

Array with reflection information indexed by class name
protected array $classReflectionData
리턴 array

$classSchemata 보호되어 있는 프로퍼티

Schemata of all classes which can be persisted
protected array<\Neos\Flow\Reflection\ClassSchema> $classSchemata
리턴 array<\Neos\Flow\Reflection\ClassSchema>

$classSchemataRuntimeCache 보호되어 있는 프로퍼티

protected VariableFrontend,Neos\Cache\Frontend $classSchemataRuntimeCache
리턴 Neos\Cache\Frontend\VariableFrontend

$classesByMethodAnnotations 보호되어 있는 프로퍼티

Array of method annotations and the classes and methods which are annotated with them
protected array $classesByMethodAnnotations
리턴 array

$classesCurrentlyBeingForgotten 보호되어 있는 프로퍼티

An array of class names which are currently being forgotten by forgetClass(). Acts as a safeguard against infinite loops.
protected array $classesCurrentlyBeingForgotten
리턴 array

$context 보호되어 있는 프로퍼티

protected ApplicationContext,Neos\Flow\Core $context
리턴 Neos\Flow\Core\ApplicationContext

$doctrinePhpParser 보호되어 있는 프로퍼티

Note: Don't refer to this member directly but use getDoctrinePhpParser() to obtain an instance
protected PhpParser,Doctrine\Common\Annotations $doctrinePhpParser
리턴 Doctrine\Common\Annotations\PhpParser

$environment 보호되어 있는 프로퍼티

protected Environment,Neos\Flow\Utility $environment
리턴 Neos\Flow\Utility\Environment

$initialized 보호되어 있는 프로퍼티

protected bool $initialized
리턴 boolean

$loadFromClassSchemaRuntimeCache 보호되어 있는 프로퍼티

In Production context, with frozen caches, this flag will be TRUE
protected bool $loadFromClassSchemaRuntimeCache
리턴 boolean

$packageManager 보호되어 있는 프로퍼티

protected PackageManagerInterface,Neos\Flow\Package $packageManager
리턴 Neos\Flow\Package\PackageManagerInterface

$reflectionDataCompiletimeCache 보호되어 있는 프로퍼티

protected VariableFrontend,Neos\Cache\Frontend $reflectionDataCompiletimeCache
리턴 Neos\Cache\Frontend\VariableFrontend

$reflectionDataRuntimeCache 보호되어 있는 프로퍼티

protected VariableFrontend,Neos\Cache\Frontend $reflectionDataRuntimeCache
리턴 Neos\Cache\Frontend\VariableFrontend

$settings 보호되어 있는 프로퍼티

protected array $settings
리턴 array

$statusCache 보호되어 있는 프로퍼티

protected StringFrontend,Neos\Cache\Frontend $statusCache
리턴 Neos\Cache\Frontend\StringFrontend

$systemLogger 보호되어 있는 프로퍼티

protected SystemLoggerInterface,Neos\Flow\Log $systemLogger
리턴 Neos\Flow\Log\SystemLoggerInterface

$updatedReflectionData 보호되어 있는 프로퍼티

Array with updated reflection information (e.g. in Development context after classes have changed)
protected array $updatedReflectionData
리턴 array

$useStatementsForClassCache 보호되어 있는 프로퍼티

a cache which stores the use statements reflected for a particular class (only relevant for un-expanded "var" and "param" annotations)
protected array $useStatementsForClassCache
리턴 array