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 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.
Tento článek vysvětluje, jak nainstalovat Composer na systémy Debian 10. Probereme také, jak používat Composer k vytváření a správě projektů PHP.
Instalace Composeru na Debian #
Před instalací Composeru se ujistěte, že máte na svém systému Debian nainstalovány všechny potřebné balíčky:
sudo apt update
sudo apt install wget php-cli php-zip unzip
Composer nabízí instalační program napsaný v PHP, který použijeme k instalaci Composer.
Stáhněte si instalační program pomocí wget
:
wget -O composer-setup.php https://getcomposer.org/installer
Výše uvedený příkaz uloží soubor jako composer-setup.php
v aktuálním pracovním adresáři.
Composer je aplikace CLI s jedním souborem, kterou lze nainstalovat buď globálně, nebo jako součást projektu. Globální instalace vyžaduje oprávnění sudo.
-
Chcete-li Composer nainstalovat globálně jako celosystémový příkaz, který bude dostupný všem uživatelům, jednoduše umístěte soubor do adresáře, který je v systémovém
PATH
. 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.10.10) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composer
Nyní můžete Composer používat spuštěním
composer
ve vašem terminálu. -
Chcete-li nainstalovat skladatel lokálně, stáhněte si soubor do kořenového adresáře projektu:
sudo php composer-setup.php --install-dir=/path/to/project
Tím se stáhne soubor s názvem
composer.phar
. Chcete-li použít Composer, přejděte do adresáře projektu a spusťtephp composer.phar
Když je k dispozici nová verze aplikace Composer, můžete instalaci aktualizovat pomocí následujícího příkazu:
sudo composer self-update
Začínáme se skladatelem #
Nyní, když máte na svém systému Debian nainstalovaný Composer, ukážeme vám, jak vytvořit projekt PHP.
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.
Spuštěním následujících příkazů 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 s názvem 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
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 5 installs, 0 updates, 0 removals
- Installing symfony/translation-contracts (v2.1.3): Downloading (100%)
- Installing symfony/polyfill-php80 (v1.18.1): Downloading (100%)
- Installing symfony/polyfill-mbstring (v1.18.1): Downloading (100%)
- Installing symfony/translation (v5.1.3): Downloading (100%)
- Installing nesbot/carbon (2.38.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
5 packages you are using are looking for funding.
Use the `composer fund` command to find out more
Jak je znázorněno na výstupu, Composer vytvoří composer.json
soubor a stáhne a nainstaluje 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 Aug 17 21:02 composer.json
-rw-r--r-- 1 linuxize users 6851 Aug 17 21:02 composer.lock
drwxr-xr-x 5 linuxize users 4096 Aug 17 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é vá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 na 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: 2020-08-17 21:08:45
Pokud později budete potřebovat aktualizovat balíčky projektu, zadejte:
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.