Instalace Satis

Vždy když v Composeru pracujeme s názvem repozitáře, například tracy/tracy, Composer musí vědět, na jaký repozitář tento název odkazuje. Pro tento účel slouží centrální Composer repozitář Packagist.org. Všechny repozitáře zde ale odkazují na veřejné repozitáře a i obsah celého Packagist.org je veřejný. Pokud chceme distribuovat balíky privátně, například v rámci firmy, můžeme si stáhnout Satis.

Satis je samostatný projekt od stejných autorů jako Composer a Packagist. Má naprosto stejnou funkci jako Packagist, ale můžeme si ho nainstalovat na vlastní server, nebo lokálně na vlastní počítač. Stejně jako Packagist umí pracovat s Git, Subvesion a Mercurial repozitáři.

Pokud tedy zadáme:

composer require tracy/tracy

Composer se podívá do centrálního repozitáře Packagist.org, kde najde, že repozitář má URL https://github.com/nette/tracy a odtud balík stáhne.

Instalace Satis

Satis je ke stažení přímo z GitHubu na adrese https://github.com/composer/satis, nebo ho můžeme nainstalovat přes Composer. Pro provoz je potřeba webový server s podporou PHP - Nastavení serveru Apache na MacOS. Přejdeme do adresáře, který je dostupný přes webový server a zadáme:

mkdir satis
composer create-project composer/satis directory --stability=dev

kde directory nahradíme názvem složky, kde má být Satis uložen. Nyní je Satis nainstalovaný a můžeme do něho přidat naše repozitáře.

Přidávní repozitáře do Satis

Nejdříve musíme vytvořit konfigurační soubor, kde bude uložen seznam dostupných repozitářů. Vytvoříme soubor satis.json s následujícím obsahem:

{
    "name": "My Repository",
    "homepage": "http://packages.example.org",
    "repositories": [
        { "type": "vcs", "url": "http://github.com/mycompany/privaterepo" },
        { "type": "vcs", "url": "http://svn.example.org/private/repo" }
    ],
    "require-all": true
}

Název satis.json je výchozí, soubor si můžeme pojmenovat jak chceme. V sekci repositories uvedeme všechny repozitáře, které chceme mít přes Satis dostupné.

Každý repozitář, který chceme publikovat přes Satis nebo Packagist.org musí mít v kořenové složce umístěn soubor composer.json, který obsahuje základní meta-data o repozitáři, podle kterých je Satis zavede do svého indexu. Takový soubor může vypadat takto:

Obsahuje název repozitáře, všechny závislosti na další knihovny, autora, licenci a další informace nutné pro běh. Tento soubor lze jednoduše vytvořit příkazem:

composer init

A dále se nám může hodit příkaz:

composer validate

který nám zkontroluje, jestli je soubor composer.json validní. Takto připravený repozitář se souborem composer.json můžeme přidat do konfiguračního souboru Satis.

Kompilace Satis

Nyní když máme Satis nainstalovaný a přidali jsme všechny repozitáře, musíme Satis zkompilovat. To provedeme příkazem:

php bin/satis build satis.json _build

kde satis.json je konfigurační soubor a _build je název adresáře, kde bude Satis dostupný. Nyní je vše připraveno, můžeme si zobrazit Satis přes prohlížeč například na adrese http://localhost/Satis/_build/.

Vidíme seznam repozitářů které jsme do Satise přidali a můžeme v nich vyhledávat. Pokud máme Satis verzovaný přes Git a používáme nějaký CI server, např. Jenkins, build se nám může provádět automaticky při každém push do repozitáře. Nemusíme se tak o nic starat.

Přidání Satis repozitáře do našeho projektu

Když už nám Satis běží, musíme Composeru říct, aby hledal nejenom na Packagist.org, ale také v našem Satis repozitáři. V rámci projektu, kde chceme Satis používat vytvoříme soubor composer.json, nebo do něho přidáme následující řádky:

{
    "repositories": [
        {
            "type": "composer",
            "url": "http://localhost/Satis/"
        }
    ]
}

Nyní můžeme vyzkoušet vyhledat nějaký privátní repozitář, který jsme přidávali do konfigurace Satise:

composer search repository-name

Mělo by nám to repozitář najít a vypsat do konzole. Repozitář můžeme nainstalovat:

composer require repository-name

Kompletní instalační návod najedete na https://getcomposer.org/doc/articles/handling-private-packages-with-satis.md