bangpound/composer-constants

Automatically define constants that expose details of the Composer configuration

Installs: 15 391

Dependents: 1

Suggesters: 0

Security: 0

Stars: 3

Watchers: 3

Forks: 0

Open Issues: 0

Type:composer-plugin

2.0.0 2023-09-21 02:07 UTC

This package is auto-updated.

Last update: 2024-03-21 03:09:00 UTC


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 ]