moonwalkingbits / wordpress-autoloader-composer-plugin
A composer plugin enabling libraries/projects to autoload classes using the WordPress coding standards.
Installs: 356
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 1
Type:composer-plugin
Requires
- php: >=7.4
- composer-plugin-api: ~1.0 || ~2.0
- moonwalkingbits/wordpress-autoloader: ~0.1
Requires (Dev)
- composer/composer: ~1.10
- composer/semver: ~1.4
- phan/phan: ~5.0
- phpmd/phpmd: ~2.8
- squizlabs/php_codesniffer: ~3.5
This package is auto-updated.
Last update: 2024-10-29 23:17:54 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.