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|null | $filesCache | In memory cache array for individually parsed files | |
| protected | string | $filesCacheKey | Key to use for files cache | |
| 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|null $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