Composer je nástroj pro správu závislostí v jazyce PHP. Umožňuje snadno instalovat, aktualizovat a spravovat balíčky a knihovny potřebné pro vaše PHP projekty. S pomocí Composeru můžete snadno stahovat a integrovat externí knihovny do svých projektů a řešit tak závislosti na třetích stranách.
https://getcomposer.org/
Hlavní funkce Composeru zahrnují:
- Správa závislostí: Composer umožňuje definovat závislosti vašeho projektu v souboru
composer.json
. Tyto závislosti mohou zahrnovat balíčky, knihovny a frameworky, které jsou vyžadovány vaším projektem. - Instalace balíčků: Po definování závislostí v souboru
composer.json
můžete použít Composer k jejich instalaci. Composer automaticky stáhne a nainstaluje všechny potřebné balíčky a jejich závislosti. - Aktualizace balíčků: Composer umožňuje snadno aktualizovat balíčky na jejich nejnovější verzi. Stačí spustit příkaz
composer update
a Composer automaticky zkontroluje, zda jsou k dispozici aktualizace pro nainstalované balíčky. - Autoloading tříd: Composer také zajišťuje automatické načítání tříd pro vaše PHP projekty. Po instalaci balíčků Composer automaticky vygeneruje soubor s mapováním tříd, který umožňuje PHP načíst třídy z nainstalovaných balíčků.
Díky těmto funkcím je Composer důležitým nástrojem pro správu závislostí v PHP projektech a pomáhá vývojářům rychle a efektivně spravovat balíčky a knihovny potřebné pro jejich práci.
Instalace Composeru
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
Je vhodné přesunout a přejmenovat soubor composer.phar
sudo mv composer.phar /usr/local/bin/composer
A případně ověřit nainstalovanou verzi
composer -V
Instalace pomocí Composeru
Správa závislostí v projektu pomocí composer.json
s oddělením balíků potřebných pro vývoj (development) a pro produkční prostředí (production) je běžnou praxí. Composer nabízí možnost specifikovat balíčky jako vývojové závislosti, které budou instalovány pouze při vývoji a nikoliv v produkci.
Definování závislostí v composer.json
:
require
: Tento blok obsahuje balíčky potřebné pro produkční prostředí.require-dev
: Tento blok obsahuje balíčky potřebné pouze pro vývoj.
Příklad
{
"name": "your/project",
"description": "Project description",
"require": {
"monolog/monolog": "^2.0",
"guzzlehttp/guzzle": "^7.0"
},
"require-dev": {
"phpunit/phpunit": "^9.0",
"phpstan/phpstan": "^0.12"
},
"autoload": {
"psr-4": {
"YourNamespace\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"YourNamespace\\Tests\\": "tests/"
}
},
"scripts": {
"test": "phpunit"
}
}
Pro instalaci všech závislostí (včetně vývojových) použijte příkaz
composer install
Pro instalaci pouze produkčních závislostí použijte příkaz
composer install --optimize-autoloader --no-dev
Update
Vývojové závislosti můžete přidat pomocí příkazu composer require --dev
. Například:
composer require --dev phpunit/phpunit
Pomocí composeru můžete jednoduše přidávat knihovny od dalších autorů. V tomto případě knihovny mpdf (pro export html do pdf souboru). Jednoduše doplníme repozitář do souboru composer.json
...
"require": {
...
"mpdf/mpdf": "^8.0"
...
Aktualizace na novou verzi se provádí opět pomocí příkazu composeru
composer update
Autoloader se postará o automatické nahrání tříd. Případně manuálně můžete použít příkaz
composer dump-autoload
V projektu pak stačí uvést pouze
<?php
use Mpdf\Mpdf;
...
Ukázkový příklad instalace Nette aplikace
Nette je moderní a rychlý PHP framework s původem z České republiky.
Pro začátek je samozřejmě nutné, mít nainstalovaný kompletní webový server se skriptováním, databází a potřebnými moduly (obvykle Apache a PHP 7.1 a vyšší).
Nejlépe je nainstalovat Nette právě pomocí nástroje composer, což je nástroj pro správu knihoven v projektu. Pokud ho ještě nemáte nainstalujete ho podle pokynů na oficiální webové stránce.
Nyní se v terminálu/příkazovém řádku přesuneme do webového adresáře a zadáme příkaz
composer create-project nette/web-project nazev-projektu
Composer nyní stáhne a zkopíruje aktuální verzi Nette do adresáře s názvem nazev-projektu a bude dostupný na adrese
http://localhost/nazev-projektu/www