PHPackages                             typo3/flow-composer-installers - 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. typo3/flow-composer-installers

Abandoned → [neos/composer-plugin](/?search=neos%2Fcomposer-plugin)Composer-installer

typo3/flow-composer-installers
==============================

A multi-framework Composer library installer

05.0k1PHP

Since Dec 17Pushed 13y ago1 watchersCompare

[ Source](https://github.com/christianjul/installers)[ Packagist](https://packagist.org/packages/typo3/flow-composer-installers)[ RSS](/packages/typo3-flow-composer-installers/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (4)Used By (0)

A Multi-Framework [Composer](http://getcomposer.org) Library Installer
======================================================================

[](#a-multi-framework-composer-library-installer)

[![Build Status](https://camo.githubusercontent.com/8723c3f2e08cb14fcf02f46d77f2b462e6d24bfc393aa01212891eef08fcf8f5/68747470733a2f2f7365637572652e7472617669732d63692e6f72672f636f6d706f7365722f696e7374616c6c6572732e706e67)](http://travis-ci.org/composer/installers)

This is for PHP package authors to require in their `composer.json`. It will magically install their package to the correct location based on the specified package type.

**Current Supported Package Types**:

- AGL `agl-`
- CakePHP 2+ `cakephp-`
- CodeIgniter `codeigniter-`
- Drupal `drupal-`
- FuelPHP `fuelphp-`
- Joomla `joomla-`
- Kohana `kohana-`
- Laravel `laravel-`
- Lithium `lithium-`
- Magento `magento-`
- Mako `mako-`
- MediaWiki `mediawiki-`
- phpBB `phpbb-`
- PPI `ppi-`
- SilverStripe `silverstripe-`
- Symfony1 `symfony1-`
- TYPO3 Flow `typo3-flow-`
- WordPress `wordpress-`
- Zend `zend-`

**Natively Supported Frameworks**:

The following frameworks natively work with Composer and will be installed to the default `vendor` directory. `composer/installers`is not needed to install packages with these frameworks:

- Aura
- Symfony2

Example `composer.json` File
----------------------------

[](#example-composerjson-file)

This is an example for a CakePHP plugin. The only important parts to set in your composer.json file are `"type": "cakephp-plugin"` which describes what your package is and `"require": { "composer/installers": "*" }` which tells composer to load the custom installers.

```
{
    "name": "you/ftp",
    "type": "cakephp-plugin",
    "require": {
        "composer/installers": "*"
    }
}
```

This would install your package to the `app/Plugin/Ftp/` folder of a CakePHP app when a user runs `php composer.phar install`.

So submit your packages to [packagist.org](http://packagist.org)!

Current Supported Types
-----------------------

[](#current-supported-types)

- AGL
    - agl-module
- CakePHP
    - **cakephp-plugin**
- CodeIgniter
    - codeigniter-library
    - codeigniter-third-party
    - codeigniter-module
- Drupal
    - **drupal-module**
    - **drupal-theme**
    - drupal-profile
    - drupal-drush
- FuelPHP
    - fuelphp-module
- Joomla
    - joomla-component
    - joomla-module
    - joomla-template
    - joomla-plugin
    - joomla-library
- Kohana
    - **kohana-module**
- Laravel
    - laravel-library
- Lithium
    - **lithium-library**
    - **lithium-source**
- Magento
    - magento-library
    - magento-skin
    - magento-theme
- Mako
    - mako-package
- MediaWiki
    - mediawiki-extension
- phpBB
    - phpbb-extension
    - phpbb-style
    - phpbb-language
- PPI
    - **ppi-module**
- SilverStripe
    - silverstripe-module
    - silverstripe-theme
- symfony1
    - **symfony1-plugin**
- TYPO3 Flow
    - typo3-flow-package
    - typo3-flow-framework
    - typo3-flow-plugin
    - typo3-flow-site
    - typo3-flow-build
    - typo3-flow-**yourlib** (will install to Packages/Yourlib/)
- WordPress
    - **wordpress-plugin**
    - **wordpress-theme**
- Zend
    - zend-library
    - zend-extra

Types in **bold** have been marked stable and you can rely on those install paths to not change. A new type must be created if any adjustments are requested for an install path.

Custom Install Paths
--------------------

[](#custom-install-paths)

If you are consuming a package that uses the `composer/installers` you can override the install path with the following extra in your `composer.json`:

```
{
    "extra": {
        "installer-paths": {
            "your/custom/path/{$name}/": ["shama/ftp", "vendor/package"]
        }
    }
}
```

This would use your custom path for each of the listed packages. The available variables to use in your paths are: `${name}`, `{$vendor}`, `{$type}`.

Custom Install Names
--------------------

[](#custom-install-names)

If you're a package author and need your package to be named differently when installed consider using the `installer-name` extra.

For example you have a package named `shama/cakephp-ftp` with the type `cakephp-plugin`. Installing with `composer/installers` would install to the path `Plugin/CakephpFtp`. Due to the strict naming conventions, you as a package author actually need the package to be named and installed to `Plugin/Ftp`. Using the following config within your **package** `composer.json`will allow this:

```
{
    "name": "shama/cakephp-ftp",
    "type": "cakephp-plugin",
    "extra": {
        "installer-name": "Ftp"
    }
}
```

Please note the name entered into `installer-name` will be the final and will not be inflected.

Contribute!
-----------

[](#contribute)

- [Fork and clone](https://help.github.com/articles/fork-a-repo).
- Run the command `php composer.phar install --dev` to install the dev dependencies. See [Composer](https://github.com/composer/composer#installation--usage).
- Use the command `phpunit` to run the tests. See [PHPUnit](http://phpunit.de).
- Create a branch, commit, push and send us a [pull request](https://help.github.com/articles/using-pull-requests).

To ensure a consistent code base, you should make sure the code follows the [Coding Standards](http://symfony.com/doc/2.0/contributing/code/standards.html)which we borrowed from Symfony.

If you would like to help, please take a look at the list of [issues](https://github.com/composer/installers/issues).

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity18

Limited adoption so far

Community19

Small or concentrated contributor base

Maturity45

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 55.6% of commits — single point of failure

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.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/11575267?v=4)[Neos](/maintainers/neos)[@neos](https://github.com/neos)

---

Top Contributors

[![shama](https://avatars.githubusercontent.com/u/99604?v=4)](https://github.com/shama "shama (45 commits)")[![Seldaek](https://avatars.githubusercontent.com/u/183678?v=4)](https://github.com/Seldaek "Seldaek (9 commits)")[![kdambekalns](https://avatars.githubusercontent.com/u/95873?v=4)](https://github.com/kdambekalns "kdambekalns (7 commits)")[![GromNaN](https://avatars.githubusercontent.com/u/400034?v=4)](https://github.com/GromNaN "GromNaN (6 commits)")[![christianjul](https://avatars.githubusercontent.com/u/1423227?v=4)](https://github.com/christianjul "christianjul (2 commits)")[![RobLoach](https://avatars.githubusercontent.com/u/25086?v=4)](https://github.com/RobLoach "RobLoach (2 commits)")[![hlubek](https://avatars.githubusercontent.com/u/33351?v=4)](https://github.com/hlubek "hlubek (1 commits)")[![joseym](https://avatars.githubusercontent.com/u/238732?v=4)](https://github.com/joseym "joseym (1 commits)")[![camspiers](https://avatars.githubusercontent.com/u/51294?v=4)](https://github.com/camspiers "camspiers (1 commits)")[![michaelcullum](https://avatars.githubusercontent.com/u/211740?v=4)](https://github.com/michaelcullum "michaelcullum (1 commits)")[![pborreli](https://avatars.githubusercontent.com/u/77759?v=4)](https://github.com/pborreli "pborreli (1 commits)")[![pocesar](https://avatars.githubusercontent.com/u/461084?v=4)](https://github.com/pocesar "pocesar (1 commits)")[![renan](https://avatars.githubusercontent.com/u/28046?v=4)](https://github.com/renan "renan (1 commits)")[![harikt](https://avatars.githubusercontent.com/u/120454?v=4)](https://github.com/harikt "harikt (1 commits)")[![freost](https://avatars.githubusercontent.com/u/773958?v=4)](https://github.com/freost "freost (1 commits)")[![hashar](https://avatars.githubusercontent.com/u/281689?v=4)](https://github.com/hashar "hashar (1 commits)")

### Embed Badge

![Health badge](/badges/typo3-flow-composer-installers/health.svg)

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

PHPackages © 2026

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