SS_ClassManifest
class SS_ClassManifest (View source)
A utility class which builds a manifest of all classes, interfaces and some additional items present in a directory, 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.
- All module configuration files.
Constants
CONF_FILE |
|
CONF_DIR |
|
Methods
No description
No description
No description
No description
Create a {@link TokenisedRegularExpression} that extracts the namespaces imported with the 'use' keyword
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 lowercased class names to file paths.
Returns a lowercase array of all the class names in the manifest.
Returns an array of all the descendant data.
Returns an array containing all the descendants (direct and indirect) of a class.
Returns a map of lowercased interface names to file locations.
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.
Returns an array of paths to module config files.
Returns an array of module names mapped to their paths.
Completely regenerates the manifest file.
No description
No description
Details
static TokenisedRegularExpression
get_class_parser()
static TokenisedRegularExpression
get_namespaced_class_parser()
static TokenisedRegularExpression
get_namespace_parser()
static TokenisedRegularExpression
get_interface_parser()
static TokenisedRegularExpression
get_imported_namespace_parser()
Create a {@link TokenisedRegularExpression} that extracts the namespaces imported with the 'use' keyword
This searches symbols for a use
followed by 1 or more namespaces which are optionally aliased using the as
keyword. The relevant matching tokens are added one-by-one into an array (using save_to
param).
eg: use Namespace\ClassName as Alias, OtherNamespace\ClassName;
__construct(string $base, bool $includeTests = false, bool $forceRegen = false, bool $cache = true)
Constructs and initialises a new class manifest, either loading the data from the cache or re-scanning for classes.
string|null
getItemPath(string $name)
Returns the file path to a class or interface if it exists in the manifest.
array
getClasses()
Returns a map of lowercased class names to file paths.
array
getClassNames()
Returns a lowercase array of all the class 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
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.
array
getConfigs()
Returns an array of paths to module config files.
array
getModules()
Returns an array of module names mapped to their paths.
"Modules" in SilverStripe are simply directories with a _config.php file.
regenerate(bool $cache = true)
Completely regenerates the manifest file.