Au moment de la rédaction de cet article en 2013, c'était une façon de le faire. Composer a ajouté un support pour de meilleures façons: voir la réponse de @igorw
AVEZ-VOUS UN REPOSITORY?
Git, Mercurial et SVN sont pris en charge par Composer.
AVEZ-VOUS UN ACCÈS EN ÉCRIT AU REPOSITORY?
Oui?
LE REPOSITORY A-T-IL UN composer.jsonFICHIER
Si vous avez un référentiel dans lequel vous pouvez écrire: Ajoutez un composer.jsonfichier, ou corrigez l'existant, et N'utilisez PAS la solution ci-dessous.
Aller à @igorw de » réponse
N'UTILISEZ CECI QUE SI VOUS N'AVEZ PAS DE DÉPÔT 
OU SI LE DÉPOSITAIRE N'A PAS composer.jsonD' UN ET VOUS NE POUVEZ PAS L'AJOUTER
Cela remplacera tout ce que Composer peut lire à partir du référentiel d'origine composer.json, y compris les dépendances du package et le chargement automatique.
L'utilisation du packagetype vous transférera le fardeau de tout définir correctement. Le moyen le plus simple est d'avoir un composer.jsonfichier dans le référentiel et de l'utiliser simplement.
Cette solution n'est vraiment que pour les rares cas où vous avez un téléchargement ZIP abandonné que vous ne pouvez pas modifier, ou un référentiel que vous ne pouvez que lire, mais il n'est plus maintenu.
"repositories": [
    {
        "type":"package",
        "package": {
          "name": "l3pp4rd/doctrine-extensions",
          "version":"master",
          "source": {
              "url": "https://github.com/l3pp4rd/DoctrineExtensions.git",
              "type": "git",
              "reference":"master"
            }
        }
    }
],
"require": {
    "l3pp4rd/doctrine-extensions": "master"
}
               
              
composer.json, utilisez donc un repo vcs. Votre exemple interrompt également le chargement automatique et ignore le fichierbranch-alias.