dex/composer-plug-and-play
最新稳定版本:0.24.0
Composer 安装命令:
composer require dex/composer-plug-and-play
包简介
Plug and play packages for Composer
README 文档
README
Adds to Composer, PHP's dependency manager, the ability to plug and play packages without necessarily installing a new dependency on composer.json.
Installation
Composer Plug and Play requires Composer 2.3.0 or newer.
composer require dex/composer-plug-and-play
Global installation
You can install Composer Plug and Play globally to use its abilities in all your local projects.
composer global require dex/composer-plug-and-play
Usage
Initialize a plug and play structure:
composer plug-and-play:init
Create or clone a Composer package into packages/<vendor>/<package> folder and run:
composer plug-and-play
Additional configuration
You can add some additional configuration in packages/composer.json to add more data in the final resolution of the composer.json file.
Commands
All commands use the plug-and-play.json and plug-and-play.lock files as source to project dependencies instead of composer.json and composer.lock original files.
You can use composer pp and composer pp:* as alias for all commands.
plug-and-play: installs plug and play dependencies together project dependencies.plug-and-play:add: require a package intopackages/composer.json.plug-and-play:dump: same thatcomposer dump-autoload, but usingplug-and-playfiles.plug-and-play:init: initialize plug and play plugin.plug-and-play:install: same thatcomposer install, but usingplug-and-playfiles.plug-and-play:reset: removeplug-and-playfiles.plug-and-play:run: same thatcomposer run-script, but usingplug-and-playfiles.plug-and-play:update: same thatcomposer update, but usingplug-and-playfiles.
Directories and files
Composer Plug and Play plugin needs a packages folder in the project root directory where the plug and play structure will live.
The plug-and-play.json and plug-and-play.lock files will contain the real project dependencies and plug and play dependencies.
Your project directory will look like this:
|- packages | |- <vendor-name> | | |- <plug-and-play-package> | | |- composer.json | | |- composer.lock | |- composer.json | |- plug-and-play.json | |- plug-and-play.lock | |- vendor | |- <vendor-name> | |- <require-package> | |- composer.json | |- composer.lock | |- composer.json |- composer.lock Ignore plugged packages
Sometimes you may need to ignore a package that is under development, for that adds in packages/composer.json something like this and run composer plug-and-play.
{ "extra": { "composer-plug-and-play": { "ignore": [ "dex/fake" ] } } } Require dev dependencies from plugged packages
When developing some package or library you may need to require its dev dependencies, for that adds in packages/composer.json something like this and run composer plug-and-play that the require-dev dependencies will be installed.
{ "extra": { "composer-plug-and-play": { "require-dev": [ "dex/fake" ] } } } Autoload (strategy)
You may have some problems with symlinks and recursion when developing packages inside another application or package, for that, you can use experimental:autoload strategy.
This strategy will create a simple copy of your composer.json in packages/vendor directory to do a symlink from your original vendor directory.
To activate it, you should change your packages/composer.json.
{ "extra": { "composer-plug-and-play": { "autoload-dev": ["dex/fake"], "require-dev": ["dex/fake"], "strategy": "experimental:autoload" } } } You must add to autoload-dev the packages that you want to map its autoload and add to require-dev the packages that you want to require its dev dependencies.
License
Composer Plug and Play is licensed under the MIT license. See the license file for more details.
统计信息
- 总下载量: 36.53k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 6
- 点击次数: 2
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-01-04