Composer-Paket aus Versionskontrollsystem verwenden

Gespeichert von Erik Wegner am/um
Body

Variante 1

Ein lokales Verzeichnis wird als Paketquelle vorgesehen:

git init --bare /srv/scm/repo1
git clone /srv/scm/repo1 ~/dev/repo1
cd ~/dev/repo1
$EDITOR composer.json
git add composer.json && git commit -m "Init"

Nun müssen folgende Abschnitte in der composer.json des Hauptprojekts ergänzt werden:

{
    "repositories": [
        {
            "type": "git",
            "url": "/srv/scm/repo1"
        }
    ],
    "config": {
        "preferred-install": {
            "my-namespace/*": "source",
            "*": "dist"
        }
    }
}

Anschließend kann das Projekt eingebunden werden:

composer require my-namespace/projectname:dev-master

Variante 2

Ein Hosting-Provider oder privater Server soll verwendet werden.

Folgende Informationen müssen in der composer.json des Hauptprojekts ergänzt werden:

{
    "repositories": [
        {
            "type": "git",
            "url": "git@github.com:username/projectname.git"
        }
    ],
    "config": {
        "preferred-install": {
            "username/*": "source",
            "*": "dist"
        }
    }
}

Anschließend kann das Projekt eingebunden werden:

composer require username/projectname:dev-master

Besondere SSH-Konfiguration

In der Datei ~/.ssh/config wird eine Konfiguration eingetragen:

Host gitlab
HostName gitlab.example.com
Port 3927
ForwardX11 no

Dann lautet die Quelladresse für das Repository ssh://git@gitlab/user.name/project.git.

Kategorien