Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Composer
  3. Composer-Bin-Plugin

Composer-Bin-Plugin

MITPHP1.9.1

A Composer plugin that isolates binary dependencies in separate vendor directories to prevent version conflicts.

GitHubGitHub
530 stars26 forks0 contributors

What is Composer-Bin-Plugin?

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.

Target Audience

PHP developers and teams who use multiple Composer-based CLI tools in their projects and encounter dependency version conflicts between those tools.

Value Proposition

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.

Overview

No conflicts for your bin dependencies

Use Cases

Best For

  • Managing PHPStan and Rector in the same project without dependency conflicts
  • Isolating PHP-CS-Fixer dependencies from main project dependencies
  • Teams using multiple Composer-based CLI tools with incompatible dependency requirements
  • CI/CD pipelines that need isolated tool environments
  • Projects where tool dependency updates frequently cause version conflicts
  • Maintaining clean separation between development tools and application dependencies

Not Ideal For

  • Projects where tools like PHPUnit need to autoload and be compatible with main project dependencies
  • Teams wanting automatic, reliable bin symlinks without manual script or alias setup
  • Environments prioritizing a single vendor directory for simplicity and minimal configuration

Pros & Cons

Pros

Isolated Dependency Management

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.

Unified CLI Interface

Provides a single command interface with 'composer bin <namespace>' to manage all isolated environments, simplifying workflow without manual directory switching.

Batch Operations Support

Allows running commands like 'update' or 'install' across all bin namespaces with 'composer bin all', streamlining maintenance for multiple tools.

CI/CD Integration Ready

Includes specific guidance for GitHub Actions using 'working-directory' settings, making it practical for automated pipelines despite some limitations with 'ramsey/composer-install'.

Cons

Bin Link Inconsistencies

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.

Added Project Clutter

Creates multiple vendor directories and composer.json files, which can complicate project structure and debugging, necessitating .gitignore and .gitattributes adjustments to reduce noise.

Configuration Overhead

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.

Frequently Asked Questions

Quick Stats

Stars530
Forks26
Contributors0
Open Issues4
Last commit4 months ago
CreatedSince 2016

Tags

#composer#workflow-automation#dev-tools#composer-plugin#tool#dependency-management#dependency#php-development#isolation#php-tools#executable

Built With

C
Composer
P
PHP

Included in

Composer904
Auto-fetched 17 hours ago

Related Projects

PrestissimoPrestissimo

composer parallel install plugin

Stars6,122
Forks167
Last commit3 years ago
Symfony-FlexSymfony-Flex

Composer plugin for Symfony

Stars4,225
Forks197
Last commit1 month ago
PackageVersionsPackageVersions

:package: Composer addon to efficiently get installed packages' version numbers

Stars3,179
Forks73
Last commit23 hours ago
Composer-PatchesComposer-Patches

Simple patches plugin for Composer

Stars1,710
Forks259
Last commit20 hours ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub