A Multi-Framework Composer Library Installer
, (*1)
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., (*2)
Current Supported Package Types:, (*3)
- CakePHP 2+
cakephp-
- CodeIgniter
codeigniter-
- Drupal
drupal-
- FuelPHP
fuelphp-
- Joomla
joomla-
- Kohana
kohana-
- Laravel
laravel-
- Lithium
lithium-
- Magento
magento-
- Mako
mako-
- MediaWiki
mediawiki-
- PHPCSStandard `phpcsstandard-
- phpBB
phpbb-
- PPI
ppi-
- SilverStripe
silverstripe-
- Symfony1
symfony1-
- WordPress
wordpress-
- Zend
zend-
Natively Supported Frameworks:, (*4)
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:, (*5)
Example composer.json
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., (*6)
``` json
{
"name": "you/ftp",
"type": "cakephp-plugin",
"require": {
"composer/installers": "*"
}
}, (*7)
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
* 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**
* 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
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`:
``` 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}
., (*8)
Contribute!
-
Fork and clone.
- Run the command
php composer.phar install --dev
to install the dev
dependencies. See Composer.
- Use the command
phpunit
to run the tests. See PHPUnit.
- Create a branch, commit, push and send us a
pull request.
To ensure a consistent code base, you should make sure the code follows the
Coding Standards
which we borrowed from Symfony., (*9)
If you would like to help, please take a look at the list of
issues., (*10)