
Compose je správce závislostí pro PHP (jako npm je pro Node.jsor pipis pro Python).
Composer stáhne všechny požadované balíčky PHP, na kterých váš projekt závisí, a spravuje je za vás. Používá se ve všech moderních PHP frameworkech a platformách, jako jsou Laravel, Symfony, Drupal a Magento 2.
Tento výukový program prochází kroky instalace Composer na CentOS 8. Pokud spěcháte a nechcete ověřovat integritu souboru, přejděte dolů do sekce Installing Composer – Quick Way.
Předpoklady #
Než budete pokračovat, ujistěte se, že jste splnili následující požadavky:
- Přihlášeni jako uživatel s právy sudo
- Mějte na svém systému CentOS 8 nainstalované PHP.
Instalace aplikace Composer na CentOS #
Chcete-li nainstalovat Composer na CentOS 8, proveďte následující kroky.
-
Nainstalujte balíček PHP CLI (command-line interface) a všechny ostatní závislosti pomocí:
sudo dnf install php-cli php-json php-zip wget unzip
-
Jakmile je PHP CLI nainstalováno, stáhněte si instalační skript Composer:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
Výše uvedený příkaz stáhne soubor s názvem
composer-setup.php
v aktuálním pracovním adresáři. -
Ověřte integritu dat porovnáním
SHA-384
souboru hash s hash nalezeným na stránce Composer Public Keys / Signatures.Následující
wget
příkaz stáhne podpis nejnovějšího instalačního programu Composer ze stránky Github skladatele a uloží jej do proměnné s názvemHASH
:HASH="$(wget -q -O - https://composer.github.io/installer.sig)"
Chcete-li ověřit, že instalační skript není poškozen, spusťte následující příkaz:
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í, zobrazí se následující zpráva:
Installer verified
V opačném případě, pokud se hodnoty hash neshodují, uvidíte
Installer corrupt
. Jakmile je integrita ověřena, pokračujte dalším krokem. -
Spuštěním následujícího příkazu nainstalujte Composer do
/usr/local/bin
adresář:sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
Výše uvedený příkaz nainstaluje
composer
jako příkaz pro celý systém a dostupný pro všechny uživatele. Výstup bude vypadat nějak taktoAll settings correct for using Composer Downloading... Composer (version 1.10.1) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composer
Výše uvedený příkaz nainstaluje
composer
jako celosystémový příkaz a dostupný pro všechny uživatele. -
Ověřte instalaci vytištěním verze skladatele:
composer -V
Composer version 1.10.1 2020-03-13 20:34:27
V tomto okamžiku jste úspěšně nainstalovali Composer na váš systém CentOS a můžete jej začít používat.
Instalace aplikace Composer [Quick Way] #
Chcete-li rychle nainstalovat Composer na váš systém CentOS 8, proveďte následující kroky:
-
Nainstalujte PHP CLI a Zip:
sudo dnf install php-cli php-json php-zip curl unzip
-
Stáhnout Composer with curl:
curl -sS https://getcomposer.org/installer |php
-
Přesuňte soubor Composer do
/usr/local/bin
adresář:sudo mv composer.phar /usr/local/bin/composer
Začínáme se skladatelem #
Nyní, když je Composer nainstalován ve vašem systému CentOS, ukážeme vám, jak používat Composer v projektu PHP.
Začněte vytvořením kořenového adresáře projektu a přejděte do něj:
mkdir ~/my-first-composer-project
cd ~/my-first-composer-project
V tomto příkladu použijeme balíček PHP s názvem carbon k vytvoření ukázkové aplikace, která vytiskne aktuální čas.
Spusťte následující příkaz pro inicializaci nového projektu Composer a instalaci balíčku uhlíku:
composer require nesbot/carbon
sing version ^2.32 for nesbot/carbon
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 4 installs, 0 updates, 0 removals
- Installing symfony/translation-contracts (v2.0.1): Downloading (connecting..Downloading (100%)
- Installing symfony/polyfill-mbstring (v1.15.0): Downloading (100%)
- Installing symfony/translation (v5.0.6): Downloading (100%)
- Installing nesbot/carbon (2.32.1): 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
3 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
Jak můžete vidět z výstupu výše, Composer vytvoří soubor s názvem composer.json
a stáhne uhlík a všechny jeho závislosti.
Pokud uvedete adresář svého projektu, uvidíte, že obsahuje dva soubory composer.json
a composer.lock
a vendor
adresář.
ls -l
-rw-rw-r--. 1 vagrant vagrant 60 Mar 27 18:05 composer.json
-rw-rw-r--. 1 vagrant vagrant 11135 Mar 27 18:06 composer.lock
drwxrwxr-x. 6 vagrant vagrant 82 Mar 27 18:06 vendor
vendor
je adresář, kde jsou uloženy závislosti projektu.- Zámek
composer.lock
obsahuje seznam všech nainstalovaných balíčků včetně jejich verzí. composer.json
je soubor, který popisuje váš projekt PHP, včetně závislostí PHP a dalších metadat.
Composer má funkce automatického načítání, které vám umožňují používat třídy PHP bez potřeby require
nebo include
prohlášení.
Vytvořte soubor s názvem testing.php
a přidejte 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.
Na první řádek po úvodní php tagu uvedeme vendor/autoload.php
soubor, který automaticky načte všechny knihovny.
Dále vytvoříme alias Carbon\Carbon
jako Carbon
. Poslední řádek vytiskne 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: 2020-03-27 22:12:26
Později, pokud budete chtít aktualizovat své balíčky PHP, můžete jednoduše spustit:
composer update
Výše uvedený příkaz zkontroluje novější verze nainstalovaných balíčků a pokud bude nalezena novější verze a omezení verze se shoduje s omezením uvedeným v composer.json
, Composer balíček aktualizuje.