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í:

  1. 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.
  2. 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.
  3. 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.
  4. 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
+