Adds ability to link local packages in composer for development.
This plugin won't alter your composer.json
or composer.lock
file,
while maintaining the composer abilities to manage/upgrade your packages.
- PHP >= 8.0
- Composer >= 2.2
This plugin can be installed globally or per project
Globally
composer global require sandersander/composer-link
Per project:
composer require --dev sandersander/composer-link
The following three commands are made available by this plugin link
, unlink
and linked
.
When the plugin is installed globally you can prefix the commands with global
as example composer global linked
and install global packages.
To link a package you can use the link
commands, you can also link a global package.
When linked to a global package absolute paths are used, when using a relative path composer-link resolves
it to the absolute path.
composer link ../path/to/package
composer global link ../path/to/package
It's also possible to use a wildcard in your path, note that this will install all packages found in the directory ../packages
If you don't want to link all the packages but only the ones originally installed you can pass the --only-installed
flag.
composer link ../packages/*
composer link ../packages/* --only-installed
To unlink the package you can use the unlink
command
composer unlink ../path/to/package
composer unlink ../packages/*
composer global unlink ../path/to/package
To see all linked packages in your project you can use the linked
command
composer linked
composer global linked