PHPackages                             nathandentzau/composer-installers-extender - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. nathandentzau/composer-installers-extender

ActiveComposer-plugin[Utility &amp; Helpers](/categories/utility)

nathandentzau/composer-installers-extender
==========================================

Extend the composer/installers plugin to accept any arbitrary package type.

2.0.0(5y ago)0745MITHTMLPHP ^7.4

Since Jan 7Pushed 5y ago1 watchersCompare

[ Source](https://github.com/nathandentzau/composer-installers-extender)[ Packagist](https://packagist.org/packages/nathandentzau/composer-installers-extender)[ Docs](http://www.github.com/nathandentzau/composer-installers-extender)[ RSS](/packages/nathandentzau-composer-installers-extender/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependencies (5)Versions (8)Used By (0)

Composer Installers Extender
============================

[](#composer-installers-extender)

The `composer-installers-extender` is a plugin for [Composer](https://getcomposer.org) that allows any package to be installed to a directory other than the default `vendor`directory within a project on a package-by-package basis. This plugin extends the [`composer/installers`](https://github.com/composer/installers) plugin to allow any arbitrary package type to be handled by their custom installer.

The [`composer/installers`](https://github.com/composer/installers) plugin has a finite set of supported package types and we recognize the need for any arbitrary package type to be installed to a specific directory other than `vendor`. This plugin allows additional package types to be handled by the [`composer/installers`](https://github.com/composer/installers) plugin, benefiting from their explicit install path mapping and token replacement of package properties.

Requirements
------------

[](#requirements)

- PHP 7.4 or higher

How to Install
--------------

[](#how-to-install)

Add `nathandentzau/composer-installers-extender` as a dependency of your project:

```
$ composer require nathandentzau/composer-installers-extender
```

How to Use
----------

[](#how-to-use)

The [`composer/installers`](https://github.com/composer/installers) plugin is a dependency of this plugin and will be automatically required as well if not already required.

To support additional package types, add an array of these types in the `extra` property in your `composer.json`:

```
{
    "extra": {
        "installer-types": ["library"]
    }
}
```

Then, you can add mappings for packages of these types in the same way that you would add package types that are supported by [`composer/installers`](https://github.com/composer/installers):

```
{
    "extra": {
        "installer-types": ["library"],
        "installer-paths": {
            "special/package/": ["my/package"],
            "path/to/libraries/{$name}/": ["type:library"]
        }
    }
}
```

By default, packages that do not specify a `type` will be considered the type `library`. Adding support for this type allows any of these packages to be placed in a different install path.

If a type has been added to `installer-types`, the plugin will attempt to find an explicit installer path in the mapping. If there is no match either by name or by type, the default installer path for all packages will be used instead.

Please see the README for [`composer/installers`](https://github.com/composer/installers) to see the supported syntax for package and type matching as well as the supported replacement tokens in the path (e.g. `{$name}`).

Why is This Project Forked?
---------------------------

[](#why-is-this-project-forked)

Years ago I contributed to the `oomphinc/composer-installers-extender` project to modernize the code base and add tests. Since my changes were merged into the default branch on that project there has been no new tagged released by the maintainer containg my changes after several years and responses to pull requests have been slow. I've decided to maintain my own version of this package containing all the changes I made years ago to update the code base to the changes in PHP 7. With Composer 2 and PHP 8 on the horizon, my hope is that I can quickly ship changes to support both new major versions. The original author of this package, who is no longer an employee of Oomph, is still listed as an author with updated contact information should you wish to reach out to him.

License
-------

[](#license)

[MIT License](LICENSE)

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity68

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~415 days

Total

5

Last Release

2117d ago

Major Versions

v1.1.2 → 2.0.02020-07-26

### Community

Maintainers

![](https://www.gravatar.com/avatar/b96ce427911326cd2da5652cdba1c48eb05c5c5fbf21260076747b60c361aea6?d=identicon)[nathandentzau](/maintainers/nathandentzau)

---

Top Contributors

[![nathandentzau](https://avatars.githubusercontent.com/u/15371196?v=4)](https://github.com/nathandentzau "nathandentzau (16 commits)")[![balbuf](https://avatars.githubusercontent.com/u/3887845?v=4)](https://github.com/balbuf "balbuf (13 commits)")[![bendoh](https://avatars.githubusercontent.com/u/1833896?v=4)](https://github.com/bendoh "bendoh (2 commits)")[![cfoellmann](https://avatars.githubusercontent.com/u/1256090?v=4)](https://github.com/cfoellmann "cfoellmann (1 commits)")[![webflo](https://avatars.githubusercontent.com/u/123946?v=4)](https://github.com/webflo "webflo (1 commits)")[![XedinUnknown](https://avatars.githubusercontent.com/u/1428973?v=4)](https://github.com/XedinUnknown "XedinUnknown (1 commits)")

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/nathandentzau-composer-installers-extender/health.svg)

```
[![Health](https://phpackages.com/badges/nathandentzau-composer-installers-extender/health.svg)](https://phpackages.com/packages/nathandentzau-composer-installers-extender)
```

###  Alternatives

[drupal/console-extend-plugin

Drupal Console Extend Plugin

13214.3M5](/packages/drupal-console-extend-plugin)[rainlab/blog-plugin

Blog plugin for October CMS

17257.7k](/packages/rainlab-blog-plugin)[php-composter/php-composter

Git Hooks Management through Composer.

10525.1k11](/packages/php-composter-php-composter)[mediawiki/semantic-glossary

A terminology markup extension with a Semantic MediaWiki back-end

1352.4k](/packages/mediawiki-semantic-glossary)[uma/composer-psysh

No-frills PsySH-Composer plugin

183.2k](/packages/uma-composer-psysh)[winter/wn-seo-plugin

Winter CMS plugin for managing SEO tags

106.3k](/packages/winter-wn-seo-plugin)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
