A Composer plugin that isolates binary dependencies in separate vendor directories to prevent version conflicts.
Composer Bin Plugin is a Composer plugin that isolates binary tool dependencies in separate vendor directories. It solves version conflicts that occur when installing multiple PHP development tools (like PHPStan, Rector, PHP-CS-Fixer) in the same project by giving each tool its own dependency environment.
PHP developers and teams who use multiple Composer-based CLI tools in their projects and encounter dependency version conflicts between those tools.
Developers choose this plugin because it provides a clean, maintainable way to manage conflicting tool dependencies without complex workarounds, while maintaining the convenience of Composer's command-line interface for all isolated environments.
No conflicts for your bin dependencies
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Prevents version conflicts by installing each tool's dependencies in separate vendor-bin directories, as highlighted in the 'Why?' section for tools like PHPStan and Rector.
Provides a single command interface with 'composer bin <namespace>' to manage all isolated environments, simplifying workflow without manual directory switching.
Allows running commands like 'update' or 'install' across all bin namespaces with 'composer bin all', streamlining maintenance for multiple tools.
Includes specific guidance for GitHub Actions using 'working-directory' settings, making it practical for automated pipelines despite some limitations with 'ramsey/composer-install'.
Bin linking behavior is non-deterministic and changes between versions (disabled by default in 2.x), requiring manual aliases or scripts for reliable tool execution, as admitted in the Configuration section.
Creates multiple vendor directories and composer.json files, which can complicate project structure and debugging, necessitating .gitignore and .gitattributes adjustments to reduce noise.
Optimal use requires additional setup, such as Composer scripts for auto-installation or enabling 'forward-command', increasing initial complexity compared to a standard Composer workflow.