
Composeris je správce závislostí pro PHP (podobně jako npm pro Node.jsor pip pro Python). Composer stáhne všechny požadované balíčky PHP, na kterých váš projekt závisí, a bude je spravovat za vás.
Tento tutoriál poskytuje kroky potřebné k instalaci Composeru na systémy Debian 9. Probereme také, jak používat Composer k vytváření a správě projektů PHP.
Předpoklady #
Než budete pokračovat v tomto tutoriálu, ujistěte se, že jste přihlášeni jako uživatel s právy sudo a že máte na svém systému Debian 9 nainstalované PHP.
Instalace aplikace Composer #
Chcete-li nainstalovat Composer na systémy Debian, postupujte podle následujících kroků:
-
Nejprve aktualizujte index balíčků a nainstalujte potřebné balíčky pomocí následujících příkazů:
sudo apt update
sudo apt install php-cli php-zip wget unzip
-
Po instalaci závislostí použijte php cli toll ke stažení instalačního skriptu Composer:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
Výše uvedený příkaz stáhne
composer-setup.php
soubor v aktuálním pracovním adresáři. -
Integritu dat skriptu ověříme porovnáním skriptu
SHA-384
hash s nejnovějším hashem instalačního programu, který najdete na stránce Composer Public Keys / Signatures.Spuštěním následujícího příkazu wget stáhněte očekávaný podpis nejnovějšího instalačního programu Composer ze stránky Github skladatele a uložte jej do proměnné s názvem
HASH
:HASH="$(wget -q -O - https://composer.github.io/installer.sig)"
Chcete-li ověřit, že instalační skript není poškozen, zkopírujte a vložte do konzoly následující kód:
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
Pokud se hodnoty hash shodují, uvidíte následující výstup:
Installer verified
Pokud se hodnoty hash neshodují, zobrazí se
Installer corrupt
. V tomto případě budete muset znovu stáhnout instalační skript Composer a znovu zkontrolovat hodnotu$HASH
proměnná secho $HASH
. Jakmile je instalační program ověřen, můžete pokračovat dalším krokem. -
Následující příkaz nainstaluje Composer do
/usr/local/bin
adresář:sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
All settings correct for using Composer Downloading... Composer (version 1.8.5) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composer
V tomto okamžiku máte na vašem systému Debian nainstalován Composer. Instaluje se jako celosystémový příkaz a bude dostupný všem uživatelům.
-
Pro ověření instalace jednoduše napište:
composer
Výše uvedený příkaz vytiskne verzi, příkazy a argumenty skladatele.
______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 1.8.5 2019-04-09 17:46:47 Usage: command [options] [arguments]
php composer-setup.php
který vytvoří soubor s názvem composer.phar
ve vašem aktuálním pracovním adresáři. Skladatel můžete použít spuštěním ./composer.phar <command>.
Začínáme se skladatelem #
Nyní, když máte na svém systému Debian nainstalovaný Composer, ukážeme vám, jak vytvořit PHP projekt pomocí Composeru.
Začněte vytvořením adresáře, který bude kořenem projektu, a bude obsahovat composer.json
soubor. Tento soubor popisuje váš projekt PHP včetně závislostí PHP a dalších metadat.
Vytvořte adresář projektu a přepněte se do něj pomocí:
mkdir ~/my-first-composer-project
cd ~/my-first-composer-project
Dále inicializujeme nový composer.json
soubor pomocí composer require <package name>
a zadejte balíček, který chceme stáhnout. V tomto příkladu vytvoříme ukázkovou aplikaci, která vytiskne aktuální čas pomocí balíčku zvaného uhlík.
Spuštěním následujícího příkazu inicializujte nový composer.json
soubor a nainstalujte uhlíkový balíček:
composer require nesbot/carbon
Using version ^1.34 for nesbot/carbon
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Installing symfony/polyfill-mbstring (v1.9.0): Downloading (100%)
- Installing symfony/translation (v3.4.17): Downloading (100%)
- Installing nesbot/carbon (1.34.0): Downloading (100%)
symfony/polyfill-mbstring suggests installing ext-mbstring (For best performance)
symfony/translation suggests installing symfony/config
symfony/translation suggests installing symfony/yaml
symfony/translation suggests installing psr/log-implementation (To use logging capability in translator)
Writing lock file
Generating autoload files
Composer vytvoří composer.json
soubor a stáhnout a nainstalovat uhlík a všechny jeho závislosti.
Pokud uvedete adresář svého projektu pomocí ls
, uvidíte, že obsahuje dva soubory composer.json
a composer.lock
a vendor
adresář.
ls -l
-rw-r--r-- 1 linuxize users 60 Oct 16 21:02 composer.json
-rw-r--r-- 1 linuxize users 6851 Oct 16 21:02 composer.lock
drwxr-xr-x 5 linuxize users 4096 Oct 16 21:02 vendor
vendor
- adresář, kde jsou uloženy závislosti projektu.composer.lock
- soubor obsahující seznam všech nainstalovaných balíčků včetně verze balíčků.composer.json
- soubor popisující projekt PHP a všechny závislosti PHP.
Composer poskytuje funkce automatického načítání, které nám umožňují používat třídy PHP bez nutnosti require
nebo include
soubory.
Vytvořte soubor s názvem testing.php
a vložte následující kód:
<?php
require __DIR__ . '/vendor/autoload.php';
use Carbon\Carbon;
printf("Now: %s", Carbon::now());
Pojďme analyzovat kód řádek po řádku.
V prvním řádku za úvodní značkou php uvádíme vendor/autoload.php
soubor, který automaticky vygeneroval Composer. Tento soubor automaticky načte všechny požadované knihovny.
Dále vytvoříme alias Carbon\Carbon
jako Carbon
a v posledním řádku tiskneme aktuální čas pomocí uhlíku now
metoda.
Spusťte skript zadáním:
php testing.php
Výstup by měl vypadat nějak takto:
Now: 2018-10-16 21:08:45
Pokud později budete potřebovat aktualizovat balíčky projektu, zadejte:
composer update
Výše uvedený příkaz zkontroluje, zda jsou k dispozici novější verze nainstalovaných balíčků a zda je nalezena novější verze a zda se omezení verze shoduje s omezením uvedeným v souboru composer.json
, Composer balíček aktualizuje.