Composer je nástroj pro správu závislostí pro php, podobně jako cpan
pro perl. Pokud jste četli tutoriál o instalaci cpan, architektura vám bude poněkud povědomá. Composer jako nástroj příkazového řádku je klient, který může načítat a aktualizovat php knihovny, které označíme podle potřeby, a také knihovny, na kterých závisí atd.
Zdrojem těchto knihoven je packagist.org, velké veřejné úložiště balíčků php. Můžeme procházet úložiště pomocí prohlížeče a najít balíčky, které bychom chtěli použít, a poté je zahrnout do našich projektů pomocí Composeru. A samotným řešením závislostí nám může Composer výrazně usnadnit život, pokud jsme závislí na externích balíčcích. Na oplátku můžeme také sdílet naše knihovny, takže k nim má komunita přístup také přes Composer.
V tomto tutoriálu nainstalujeme Composer na Red Hat Enterprise Linux 8 a označíme balíček jako potřebnou závislost pro náš projekt, abychom viděli, jak nástroj funguje.
V tomto tutoriálu se naučíte:
- Jak nainstalovat Composer
- Jak definovat balíček jako závislost
- Jak nainstalovat závislosti pomocí nástroje Composer
Hlavní pomoc skladatele.
Požadavky na software a použité konvence
Kategorie | Požadavky, konvence nebo použitá verze softwaru |
---|---|
Systém | Red Hat Enterprise Linux 8 |
Software | Skladatel 1.8.0 |
Jiné | Privilegovaný přístup k vašemu systému Linux jako root nebo prostřednictvím sudo příkaz. |
Konvence | # – vyžaduje, aby dané linuxové příkazy byly spouštěny s právy root buď přímo jako uživatel root, nebo pomocí sudo příkaz$ – vyžaduje, aby dané linuxové příkazy byly spouštěny jako běžný neprivilegovaný uživatel |
Jak nainstalovat skladatel na Redhat 8 pokyny krok za krokem
Abychom mohli používat skladatel, přirozeně potřebujeme php
, s některými rozšířeními. PHP 7.2 a jeho rozšíření jsou dosažitelná po povolení repozitářů správy předplatného a také v instalačním programu distribuovaném ve formátu ISO.
- Nejprve musíme nainstalovat balíčky související s php pomocí
dnf
:dnf install php php-cli php-zip php-json
- Nyní si můžeme stáhnout instalační program Composer pomocí php:
# php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
- Abychom měli k nástroji přístup odkudkoli v systému, umístíme jej na
$PATH
./usr/local/bin
je součástí$PATH
ve výchozím nastavení.# php composer-setup.php --install-dir=/usr/local/bin --filename=composer All settings correct for using Composer Downloading... Composer (version 1.8.0) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composer
- Pro testování funkčnosti vytváříme pracovní adresář, který je kořenem našeho
php
vývojový projekt:$ mkdir myProject
A zadejte jej:
$ cd myProject
Po procházení úložiště se rozhodneme, že budeme potřebovat
zend-eventmanager
balíček, verze3.2.1
. Vytvoříme textový soubor s názvemcomposer.json
s následujícím obsahem v kořenovém adresáři našeho projektu:{ "require": { "zendframework/zend-eventmanager": "3.2.1" } }
- K instalaci balíčku, který jsme definovali jako závislost, můžeme použít čerstvě nainstalovaný
composer
:$ composer install Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 1 install, 0 updates, 0 removals - Installing zendframework/zend-eventmanager (3.2.1): Downloading (100%) zendframework/zend-eventmanager suggests installing container-interop/container-interop (^1.1.0, to use the lazy listeners feature) zendframework/zend-eventmanager suggests installing zendframework/zend-stdlib (^2.7.3 || ^3.0, to use the FilterChain feature) Writing lock file Generating autoload files
Pokud uvedeme seznam našeho pracovního adresáře, uvidíme soubor lockfile a
vendor
adresář. Poslední je ten, kdecomposer
stáhli požadované balíčky.$ ls composer.json composer.lock vendor
$ ls vendor/ autoload.php composer zendframework
V rámci
vendor
adresář je balíček, který jsme potřebovali, aautoload.php
. Toto je jediný soubor, který musíme zahrnout do našeho kódu, abychom mohli používat kteroukoli z knihoven, které jsme nainstalovali pomocícomposer
. Regeneruje se při instalaci/upgradu nového balíčku.