I have an application A which has a composer.json file defining a dependency on package P, which is my own new shiny package. My package P has a composer.json file, which de
The solution I use when I'm in a situation where I need to work on multiple packages at the same time, is to register each package locally and after composer install
or after first composer update
I remove that package from vendor directory and symlink it to location where I store the local "WIP" version.
For example:
my_vendor/packageA
, which is registered locally inside ~/.composer/config.json
.composer update my_vendor/packageA
to make composer aware of my new package.Which will leave me with something like:
This allows me:
packageA
even from inside my vendor dir packageA
before I can use those changes inside my projectA
.When packageA will be stable enough, the symlink will be removed and everything will come back to normal, using the version from VCS/packagist.
I tried different solutions over the time and I found that the above works best for me.
An alternative solution which I use when I can, is to register PSR-0 directories manually, for each prefix:
<?php
$autoloader = require_once __DIR__.'/vendor/autoload.php';
$autoloader->add('MyVendor\\Dummy\\', '/path/to/dummy-component/src');
// now you can use MyVendor\Dummy as normal.
Note: For PSR-4 there is addPsr4()
method.