AutoloaderLocator
in package
Table of Contents
Properties
- $classLoader : ClassLoader|null
- $fallbackClassLoader : ClassLoader|null
- Fallback classloader for extensions.
Methods
- autoload() : ClassLoader
- findComposerConfigurationPath() : string
- Retrieves the custom composer configuration path based on the {@link https://getcomposer.org/doc/03-cli.md#composer COMPOSER environment variable} or returns the default 'composer.json'.
- findVendorPath() : string
- Attempts to find the location of the vendor folder.
- loader() : ClassLoader
- getCustomVendorPathFromComposer() : string
- Retrieves the custom vendor directory name from the {@link https://getcomposer.org/doc/03-cli.md#composer-vendor-dir COMPOSER_VENDOR_DIR environment variable}, from the {@link https://getcomposer.org/doc/06-config.md#vendor-dir vendor-dir entry} of the given composer.json, or returns 'vendor'.
Properties
$classLoader
private
static ClassLoader|null
$classLoader
$fallbackClassLoader
Fallback classloader for extensions.
private
static ClassLoader|null
$fallbackClassLoader
When running with an authoritative classmap, the classloader will not be able to load classes from extensions. This classloader will be used as a fallback to load classes from extensions. This is a security flaw, but phpDocumentor should never be installed in production.
Methods
autoload()
public
static autoload() : ClassLoader
Return values
ClassLoaderfindComposerConfigurationPath()
Retrieves the custom composer configuration path based on the {@link https://getcomposer.org/doc/03-cli.md#composer COMPOSER environment variable} or returns the default 'composer.json'.
public
static findComposerConfigurationPath() : string
Return values
stringfindVendorPath()
Attempts to find the location of the vendor folder.
public
static findVendorPath([string $baseDir = __DIR__ ]) : string
This method tries to check for a autoload.php in a directory 4 levels above the folder of this Bootstrap file. This is the expected location if phpDocumentor is installed using composer because the current directory for this file is expected to be 'vendor/phpdocumentor/phpdocumentor/src/phpDocumentor'. This approach will work independently from the name of the vendor directory.
If not found, it will get the value of a COMPOSER_VENDOR_DIR environment variable and use it as vendor directory name if not empty.
If it's not specified, it will check if it is a standalone install (e.g. via git) and will look for a composer.json file 2 levels above as we are supposed to be in 'src/phpDocumentor' (The configuration file can be named differently based on the COMPOSER environment variable). If this file contains a vendor-dir entry, its value will be used for the vendor directory location.
If none of these has a specified value, it will use the default 'vendor' directory name.
Finally, if the directory doesn't exist, it will throw an exception.
Parameters
- $baseDir : string = __DIR__
-
parameter for test purposes only.
Tags
Return values
string —The vendor directory path
loader()
public
static loader() : ClassLoader
Return values
ClassLoadergetCustomVendorPathFromComposer()
Retrieves the custom vendor directory name from the {@link https://getcomposer.org/doc/03-cli.md#composer-vendor-dir COMPOSER_VENDOR_DIR environment variable}, from the {@link https://getcomposer.org/doc/06-config.md#vendor-dir vendor-dir entry} of the given composer.json, or returns 'vendor'.
private
static getCustomVendorPathFromComposer(string $composerConfigurationPath) : string
Parameters
- $composerConfigurationPath : string
-
the path pointing to the composer.json