composer/composer — Issue #206: add a way to require installation of a pkg that implements an "interface"
Author: lsmith77
Created: 2012-01-15 17:00:13+00:00
State: open

I was talking to @DamZ yesterday about this. The idea is basically being able to provide an interface and then packages being able to advertise that they implement the given interface.

Take for example PHPCR ODM:
https://github.com/doctrine/phpcr-odm

It provides an ODM layer on top of any PHPCR compatible implementation:
https://github.com/phpcr/phpcr (interfaces)
https://github.com/jackalope/jackalope (one implementation)
https://github.com/midgardproject/phpcr-midgard2 (another implementation)

Right now I would have to manually list optional dependencies for all known PHPCR interface implementations.

So it would be great if instead I could define PHPCR as an interface package and then Jackalope and Midgard CR could define themselves as implementations of said interface and finally PHPCR ODM could require any implementation of said interfaces.