phpDocumentor

AutoloaderLocator
in package

FinalYes

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

$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

findComposerConfigurationPath()

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
string

findVendorPath()

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
throws
RuntimeException

If the vendor directory is not findable.

Return values
string

The vendor directory path

getCustomVendorPathFromComposer()

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

Return values
string

        
On this page

Search results