Search by

cakephp / plugin-installer

cakephp

A composer installer for CakePHP plugins.

Package info

github.com/cakephp/plugin-installer

Type:composer-plugin

pkg:composer/cakephp/plugin-installer

Statistics

Installs: 14 016 999

Dependents: 259

Suggesters: 0

Stars: 33

Open Issues: 0

2.0.3 2026-10-10 14:35 UTC

README

Build Status Latest Stable Version Total Downloads Software License

A composer installer for installing CakePHP plugins.

This installer ensures your application is aware of CakePHP plugins installed by composer in vendor/.

Usage

Your CakePHP application should already depend on cakephp/plugin-installer, if not in your CakePHP application run:

composer require cakephp/plugin-installer

Your plugins themselves do not need to require cakephp/plugin-installer. They only need to specify the type in their composer config:

"type": "cakephp-plugin"

App Plugins

Plugins in your application's plugins/ directory are added to the generated cakephp-plugins.php as well. If a plugin exists both there and in vendor/, the one in plugins/ is used. This lets you work on a local copy of a plugin that is also installed through composer.

Multiple Plugin Paths

If your application uses multiple plugin paths. In addition to configuring your application settings you will also need to update your composer.json to ensure the generated cakephp-plugins.php file is correct:

// Define the list of plugin-paths your application uses.
"extra": {
    "plugin-paths": ["plugins", "extra_plugins"]
}

Plugin Setup

For the installer to work properly ensure that your plugin's composer config file has a proper autoload section. Assuming your plugin's namespace is "MyPlugin" the autoload section would be like:

"autoload": {
    "psr-4": {
        "MyPlugin\\": "src/"
    }
}

Not strictly necessary for the working of the installer but ideally you would also have an "autoload-dev" section for loading test files:

"autoload": {
    "psr-4": {
        "MyPlugin\\": "src/"
    }
},
"autoload-dev": {
    "psr-4": {
        "MyPlugin\\Test\\": "tests/",
        "Cake\\Test\\" : "vendor/cakephp/cakephp/tests/"
    }
}

If your top level namespace is a vendor name then your namespace to path mapping would be like:

"autoload": {
    "psr-4": {
        "MyVendor\\MyPlugin\\": "src/"
    }
},
"autoload-dev": {
    "psr-4": {
        "MyVendor\\MyPlugin\\Test\\": "tests/",
        "Cake\\Test\\" : "vendor/cakephp/cakephp/tests/"
    }
}

Generating Manually

If you need to generate cakephp-plugins.php separately, you can simply run the dumpautoload command:

composer dumpautoload

You cannot use --no-scripts with dumpautoload or cakephp-plugins.php will not generate.

If you don't want to re-generate the entire autoload dump, you can run just the scripts:

composer run-script post-autoload-dump

Please see composer documentation for details.