bangpound / composer-constants
Automatically define constants that expose details of the Composer configuration
Installs: 15 472
Dependents: 2
Suggesters: 0
Security: 0
Stars: 3
Watchers: 3
Forks: 0
Open Issues: 0
Type:composer-plugin
Requires
- composer-plugin-api: ^2.0
Requires (Dev)
- composer/composer: ^2.0
- phpunit/phpunit: ^10.3
README
This Composer plugin defines constants within the generated autoload.php
for the Composer
autoloader factory class name, the composer.json file, the base directory, the bin directory,
and the vendor directory.
If you need more runtime introspection in your Composer project, see joshdifabio/composed.
Installation
composer require bangpound/composer-constants
Configuration
Set composer-constant-prefix
if you want to override the default prefix COMPOSER_
.
{ "extra": { "composer-constant-prefix": "SPECIAL_COMPOSER_" } }
Usage
When Composer dumps the autoloader, this plugin will prepend new constants for each of the values above.
Example vendor/autoload.php
:
<?php // autoload.php @generated by Composer require_once __DIR__ . '/composer' . '/autoload_real.php'; if (!defined('COMPOSER_AUTOLOAD_CLASS')) { define('COMPOSER_AUTOLOAD_CLASS', 'ComposerAutoloaderInit283c0e3e301a833e1abc76806341c497'); } if (!defined('COMPOSER_BASE_DIR')) { define('COMPOSER_BASE_DIR', '/srv/project'); } if (!defined('COMPOSER_BIN_DIR')) { define('COMPOSER_BIN_DIR', '/srv/project/bin'); } if (!defined('COMPOSER_FILE')) { define('COMPOSER_FILE', '/srv/project/composer.json'); } if (!defined('COMPOSER_VENDOR_DIR')) { define('COMPOSER_VENDOR_DIR', '/srv/project/vendor'); } return ComposerAutoloaderInit283c0e3e301a833e1abc76806341c497::getLoader();
If you want to use the Composer autoloader in your Symfony Dependency Injection Container, set up the service this way:
services: class_loader: class: Composer\Autoload\Classloader factory: [ '@=constant("COMPOSER_AUTOLOAD_CLASS")', getLoader ]