moonwalkingbits/wordpress-autoloader-composer-plugin

A composer plugin enabling libraries/projects to autoload classes using the WordPress coding standards.

0.2.3 2021-11-15 07:43 UTC

This package is auto-updated.

Last update: 2024-04-29 22:16:47 UTC


README

To easily consume libraries following the WordPress coding standards this plugin enables the libraries to register namespace mappings in the composer configuration like any other autoloading standard.

A library can register any number of namespace mappings:

{
    "autoload": {
        "wordpress": {
            "Namespace\\": "path/to/classes/"
        }
    }
}

This plugin will generate a file named wordpress-autoload.php that resides in the composer vendor directory. The consumer of the library can include this file directly and it will work as expected. But you can also add the file to the list of autoloaded files in the composer configuration. Doing this allows you to use all possible autoloading standards simultaneously:

{
    "autoload": {
        "files": [
            "vendor/wordpress-autoload.php"
        ]
    }
}

The consumer can of course also define its own set of namespace mappings:

{
    "autoload": {
        "Additional\\Namespace\\": "path/",
        "files": [
            "vendor/wordpress-autoload.php"
        ]
    }
}

Just like the composer autoload file wordpress-autoload.php returns the autoloader instance. If you use wordpress-autoload.php directly you can store the return value of the include call in a variable and add more namespace mappings:

<?php

$autoloader = require_once 'vendor/wordpress-autoload.php';
$autoloader->add_namespace_mapping( 'Additional\\Namespace\\', __DIR__ . '/path' );

License

WordPress Autoloader Composer Plugin is released under the GPL license.