mnsami / composer-custom-directory-installer
A composer plugin, to help install packages of different types in custom paths.
Fund package maintenance!
mnsami
Installs: 4 161 727
Dependents: 68
Suggesters: 0
Security: 0
Stars: 138
Watchers: 8
Forks: 26
Open Issues: 2
Type:composer-plugin
Requires
- php: >=5.3
- composer-plugin-api: ^1.0 || ^2.0
- dev-master / 2.0.x-dev
- 2.0.0
- 1.1.1
- 1.1.0
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- dev-codex/update-return-statement-to-null
- dev-codex/ensure-newline-after-cmd-in-dockerfile
- dev-codex/introduce-phpunit-and-configure-github-actions
- dev-codex/fix-plugin-registration-for-pear-installer
- dev-codex/update-readme.md-for-clarity
- dev-codex/update-class_exists-argument-in-pearplugin.php
- dev-allow-custom-packages-types
- dev-revert-17-no-metapackages-installer
This package is auto-updated.
Last update: 2025-05-28 08:15:41 UTC
README
A composer plugin to install different types of Composer packages in custom directories outside the default vendor
folder.
This is not another composer-installer
library for supporting non-composer package types i.e. application
.. etc. This is only to add the flexibility of installing composer packages outside the vendor folder. This package only supports composer
package types,
https://getcomposer.org/doc/04-schema.md#type
The type of the package. It defaults to library.
Package types are used for custom installation logic. If you have a package that needs some special logic, you can define a custom type. This could be a symfony-bundle, a wordpress-plugin or a typo3-module. These types will all be specific to certain projects, and they will need to provide an installer capable of installing packages of that type.
How to use
- Include the composer plugin into your
composer.json
require
section::
"require":{
"php": ">=5.3",
"mnsami/composer-custom-directory-installer": "1.1.*",
"monolog/monolog": "*"
}
- In the
extra
section define the custom directory you want to the package to be installed in::
"extra":{
"installer-paths":{
"./monolog/": ["monolog/monolog"]
}
}
by adding the installer-paths
part, you are telling composer to install the monolog
package inside the monolog
folder in your root directory.
- As an added new feature, we have added more flexibility in defining your download directory same like the
composer/installers
, in other words you can use variables like{$vendor}
and{$name}
in yourinstaller-path
section::
"extra": {
"installer-paths": {
"./customlibs/{$vendor}/db/{$name}": ["doctrine/orm"]
}
}
the above will manage to install the doctrine/orm
package in the root folder of your project, under customlibs
.
Note
Composer type: project
is not supported in this installer, as packages with type project
only make sense to be used with application shells like symfony/framework-standard-edition
, to be required by another package.