/mu-plugin-installer

:package: [STABLE][Composer Installer] A WordPress MU plugin Installer, which supports **loader script** & sub-folder (NOT ONLY FOR Devaloka).

Primary LanguagePHPMIT LicenseMIT

A Composer Installer for WordPress MU Plugins

Latest Stable Version Latest Unstable Version License Build Status Coverage Status

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.

Example

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

Example composer.json File (for MU plugin package)

composer.json becomes almost the same as A Multi-Framework Composer Library Installer's.

Package Type and Dependency (type and require)

{
    "name": "you/your-plugin-name",
    "type": "devaloka-muplugin",
    "require": {
        "devaloka/mu-plugin-installer": "~0.2.0"
    }
}

Custom Loader File (installer-loader)

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.

Example composer.json File (for root package)

The root package means your project's composer.json.

Custom Loader Path (installer-loader-paths)

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.