cakephp / plugin-installer
A composer installer for CakePHP 3.0+ plugins.
Installs: 3 971 842
Dependents: 263
Suggesters: 0
Security: 0
Stars: 28
Watchers: 29
Forks: 14
Open Issues: 0
Type:composer-plugin
Requires
- php: >=5.6.0
- composer-plugin-api: ^1.0 || ^2.0
Requires (Dev)
- cakephp/cakephp-codesniffer: ^3.3
- composer/composer: ^2.0
- phpunit/phpunit: ^5.7 || ^6.5 || ^8.5 || ^9.3
README
A composer installer for installing CakePHP 3.0+ 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"
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/test" } }
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/test" } }
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.