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.phpv aktuálním pracovním adresáři. -
Ověřte integritu dat porovnáním
SHA-384souboru hash s hash nalezeným na stránce Composer Public Keys / Signatures.Následující
wgetpří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 verifiedV 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/binadresář:sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composerVýše uvedený příkaz nainstaluje
composerjako 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/composerVýše uvedený příkaz nainstaluje
composerjako celosystémový příkaz a dostupný pro všechny uživatele. -
Ověřte instalaci vytištěním verze skladatele:
composer -VComposer 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/binadresář: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-projectcd ~/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
vendorje adresář, kde jsou uloženy závislosti projektu.- Zámek
composer.lockobsahuje seznam všech nainstalovaných balíčků včetně jejich verzí. composer.jsonje 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.