You can clone with
No one assigned
Is there any way to simply symlink a vendor library from another directory rather than keeping a local copy for each project?
This is primarily for speed of development.
We have many in house modules (20-30) and are running a Satis server.
When we require a change to a module for a project, you must follow this process at present.
composer update --dev
The turn around on this is quite lengthy, and doing it multiple time for multiple modules/projects is impractical.
If we could just symlink each of our in house libraries into the vendor directory, turn around time would be nil.
Feature request #55 to allow system-wide install of packages may be relevant here.
i'd love something like this as well.
#55 does not solve this case in my opinion, because it only focuses on providing a global bin for phpunit and similar stuff.
In my case i've got several Development Environments on my machine which share quite some Packages i'm working on. It's getting quite annoying to keep them up to date through push&pull, especially, since i partly want to test it first in different environments before pushing. I tried to solve this by manually making symlinks for those packages form a central location to the environments, but just a few minutes ago a 'composer update' acutally deleted one of my pending local copies in in the process :/
What you want seems to be #1017 in fact
+1 for this issue.
For us Composer is great when building applications. But when our projects goes in production on our internal shared hosting (100+ projects by server), the projects should use a shared version of the main dependencies they are using (ZF, Doctrine).
It's important for us to share the code because without that the opcode cache is quickly full with the same huge files (say Zend_Date).
So for us the ability to have a global repo that can be referenced in local projects is a top requirement for the global adoption of Composer.
Btw, thanks for your work,
I think that a local location to look for dependend packages and the global installation (#55) for packages would work well together.
I have an idea for this. For this, composer needs to know where to fetch local dependencies. A simple directive to point to a folder (see option 1 and 2 below). And this is how composer searches for dependencies:
Two different local directives:
Option 1: Short Syntax
Composer would then expect the local folder to contain packages in the / format:
E.g. a dependency of "A/B" would then be looked up in "path/to/local/folder/A/B".
Option 2: Detailed Syntax
This one is a little more fine grained, as it gives you control to where to look up a certain vendor. Without a given as key, this option would behave as option 1 (so, both syntax are actually possible and valid).
Run the update/install command only ONCE and you can use your local dependencies (since they are symlinked, they update on-the-fly). Once you commit your dependencies and you install it from a different location (another machine) the normal dependency strategy takes in effect.
I think that this feature should be configurable from an external file, something like dev.json.dist and included trought composer.json.composer.json.dist
This because each developer can have a different environment and libraries placed in different locations.