This is a Composer Installer for WordPress MU Plugins.
The Installer is basically based on/compatible with A Multi-Framework Composer Library Installer but it also supports the loader script installation of your MU plugin.
The loader script is installed into mu-plugins
directory by default so that
you can provide your MU plugin including sub directory as a Composer package.
A package:
-
your-package-root
-
mu-plugins/ (loader directory:
mu-plugins
by default)- your-plugin.php (loader script: same as your package name by default)
-
foo/
- bar.php
-
baz.php
-
will be installed as:
-
wp-content/mu-plugins/
-
your-plugin.php (loader script)
-
your-plugin/ (same as your package name by default)
-
mu-plugins/ (original loader directory remains)
- your-plugin.php (original loader script remains)
-
foo/
- bar.php
-
baz.php
-
-
composer.json
becomes almost the same as A Multi-Framework Composer Library Installer's.
{
"name": "you/your-plugin-name",
"type": "devaloka-muplugin",
"require": {
"devaloka/mu-plugin-installer": "~0.2.0"
}
}
installer-loader
key is available for your custom loader file, which is the
relative path from your package root.
{
"extra": {
"installer-loader": "loader/your-loader.php"
}
}
You can check out a real world composer.json example.
The root package means your project's composer.json
.
installer-loader-paths
key is available for your custom install path for
loader(s).
This is almost the same as as A Multi-Framework Composer Library Installer's installer-paths
but it is for the loader file.
{
"extra": {
"installer-loader-paths": {
"your-custom-path/{$name}/": ["vendor/package"]
}
}
}
With a type:
prefix:
{
"extra": {
"installer-loader-paths": {
"your-custom-path/{$name}/": ["type:devaloka-muplugin"]
}
}
}
{$vendor}
, {$name}
and {$type}
variables are available.
In addition, {$loader}
variable is available, which is the relative path
to the loader file.