ClassManifest
class ClassManifest (View source)
A utility class which builds a manifest of all classes, interfaces and caches it.
It finds the following information:
- Class and interface names and paths.
- All direct and indirect descendants of a class.
- All implementors of an interface.
To be consistent; In general all array keys are lowercase, and array values are correct-case
Properties
protected | string | $base | base manifest directory |
|
protected | CacheFactory | $cacheFactory | Used to build cache during boot |
|
protected | CacheInterface|null | $cache | Cache to use, if caching. |
|
protected | string | $cacheKey | Key to use for the top level cache of all items |
|
protected | array | $serialisedProperties | Array of properties to cache |
|
protected | array | $classes | Map of lowercase class names to paths |
|
protected | array | $classNames | Map of lowercase class names to case-correct names |
|
protected | array | $roots | List of root classes with no parent class Keys are lowercase, values are correct case. |
|
protected | array | $children | List of direct children for any class. |
|
protected | array | $descendants | List of descendents for any class (direct + indirect children) Keys are lowercase, values are arrays. |
|
protected | array | $interfaces | Map of lowercase interface name to path those files |
|
protected | array | $interfaceNames | Map of lowercase interface name to proper case |
|
protected | array | $implementors | List of direct implementors of any interface Keys are lowercase, values are arrays. |
|
protected | array | $traits | Map of lowercase trait names to paths |
|
protected | array | $traitNames | Map of lowercase trait names to proper case |
|
protected | array | $enums | Map of lowercase enum names to paths |
|
protected | array | $enumNames | Map of lowercase enum names to proper case |
Methods
Constructs and initialises a new class manifest, either loading the data from the cache or re-scanning for classes.
Returns the file path to a class or interface if it exists in the manifest.
Returns a map of lowercase class names to proper class names in the manifest
Returns a map of lowercase trait names to proper trait names in the manifest
Returns a map of lowercase enum names to proper enum names in the manifest
Returns an array containing all the descendants (direct and indirect) of a class.
Return map of lowercase interface names to proper case names in the manifest
Returns a map of lowercased interface names to the classes the implement them.
Returns an array containing the class names that implement a certain interface.
Visit a file to inspect for classes, interfaces and traits
Recursively coalesces direct child information into full descendant information.
Details
__construct(string $base, CacheFactory $cacheFactory = null)
Constructs and initialises a new class manifest, either loading the data from the cache or re-scanning for classes.
init(bool $includeTests = false, bool $forceRegen = false)
Initialise the class manifest
Parser
getParser()
Get or create active parser
NodeTraverser
getTraverser()
Get node traverser for parsing class files
ClassManifestVisitor
getVisitor()
Get visitor for parsing class files
string|null
getItemPath(string $name)
Returns the file path to a class or interface if it exists in the manifest.
string
getItemName(string $name)
Return correct case name
array
getClasses()
Returns a map of lowercased class names to file paths.
array
getClassNames()
Returns a map of lowercase class names to proper class names in the manifest
array
getTraits()
Returns a map of lowercased trait names to file paths.
array
getTraitNames()
Returns a map of lowercase trait names to proper trait names in the manifest
array
getEnums()
Returns a map of lowercased enum names to file paths.
array
getEnumNames()
Returns a map of lowercase enum names to proper enum names in the manifest
array
getDescendants()
Returns an array of all the descendant data.
array
getDescendantsOf(string|object $class)
Returns an array containing all the descendants (direct and indirect) of a class.
array
getInterfaces()
Returns a map of lowercased interface names to file locations.
array
getInterfaceNames()
Return map of lowercase interface names to proper case names in the manifest
array
getImplementors()
Returns a map of lowercased interface names to the classes the implement them.
array
getImplementorsOf(string $interface)
Returns an array containing the class names that implement a certain interface.
Module
getOwnerModule(string $class)
Get module that owns this class
regenerate(bool $includeTests)
Completely regenerates the manifest file.
handleFile(string $basename, string $pathname, bool $includeTests)
Visit a file to inspect for classes, interfaces and traits
protected array
coalesceDescendants(string $class)
Recursively coalesces direct child information into full descendant information.
protected bool
loadState(array $data)
Reload state from given cache data
protected array
getState()
Load current state into an array of data
protected bool
validateItemCache(array $data)
Verify that cached data is valid for a single item