A Composer library installer that maps package types to custom installation paths for PHP frameworks.
Composer/Installers is a PHP package that extends the Composer dependency manager to install packages into custom directories based on their type. It solves the problem of organizing framework-specific plugins, themes, and modules outside Composer's default vendor folder, making it easier to manage extensions for platforms like WordPress, Drupal, and Laravel.
PHP package authors and developers building plugins, themes, or modules for frameworks and CMS platforms that require non-standard installation locations.
It provides a standardized, widely-adopted solution for custom package installation without requiring every framework to build its own Composer installer, reducing fragmentation and simplifying maintenance for the PHP ecosystem.
A Multi-Framework Composer Library Installer
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports over 70 PHP frameworks and CMS platforms, including WordPress, Drupal, and Laravel, as detailed in the README's comprehensive type table, ensuring broad ecosystem compatibility.
Allows users to override default installation paths per package, vendor, or type using the `installer-paths` configuration, enabling tailored directory structures for multi-framework projects.
Authors can specify an `installer-name` in their composer.json to define the final installed directory name, preventing naming conflicts and adhering to framework conventions without renaming packages.
Installers can be disabled globally or per-framework via the `installer-disable` configuration, helping avoid conflicts with other custom installers, as mentioned in the README's conflict resolution section.
The README explicitly rejects dynamic package types or paths, stating it won't allow authors to set paths directly, forcing users to rely on static mappings or seek alternative packages like composer-installers-extender.
Requires package authors to include `composer/installers` in their composer.json for it to work, which isn't always guaranteed, limiting its effectiveness for packages that don't adopt it.
Overriding paths requires correctly setting up `installer-paths` in the `extra` section of composer.json, which can be error-prone and less intuitive for users unfamiliar with Composer's configuration nuances.