Compser pro PHP - automatizace

Vydávání, hosting a aktualizace umožňují jeho sponzoři.
V tomto článku vysvětlím co to vlastně Composer je, na co se používá a podíváme se spolu na základní příkazy. Další věc, kterou vám chci ukázat, je instalace o konfigurace, která mnohdy není pro začátečníky moc přívětivá, hlavně kvůli automatizaci, díky které je používání nástroje velmi pohodlné.
Co to je Composer
Composer je nástroj pro správu závislostí v programovacím jazyce PHP. Nejen, že přes něj můžeme stahovat jednotlivé knihovny (balíčky z webu https://packagist.org/), ale dokonce se postará o dohrání dalších balíčků, které jsou potřeba pro běh stažené knihovny. Dále umožňuje snadnou výměnu verzí používaných knihoven a popřípadě odstranění všech nepotřebných.
Přes composer se dá ale vytvořit i samotná kostra projektu díky tzv. skeletonu, ale o tom až později.
Pokud budete pracovat někde ve firmě jako programátor, tak se tomuto nástroji s velkou pravděpodobností nevyhnete, proto doporučuji se ho naučit používat.
Stažení a instalace
Základní instalace
Samotný composer si můžete stáhnout z https://getcomposer.org/download/
Pro windows je vytvořen jednoduchý installer, proto ho zde popisovat nebudu, a pro Linux stačí napsat do konzole následující příkazy:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === 'e115a8dc7871f15d853148a7fbac7da27d6c0030b848d9b3dc09e2a0388afed865e6a3d6b3c0fad45c48e2b5fc1196ae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
Pozor, druhý příkaz obsahuje hash, který se mění s každou nově vydanou verzí.
Doporučuji postupovat podle oficiálních stránek, pokud umíte alespoň trochu anglicky. Pokud instalujete pro Windows a nejede vám installer, tak se ujistěte, že máte v souboru php.ini povoleno openssl. Musí tam být následující řádek:
extension=php_opensssl.ddl
Pokud jste tuto závislost přidali, tak bude potřeba restartovat server.
Ruční instalace souboru php.phar
Pokud z nějakého důvodu potřebujete ruční stažení pro windows, tak do příkazového řádku napište
php -r "eval('?>'.file_get_contents('https://getcomposer.org/installer'))"
a nainstalujte do adresáře, kde máte uložené PHP.
Automatizace
V adresáři, kde máte uložené php.exe a composer.phar, vytvořte zde soubor composer.bat a vložte do něj následující kód:
@echo off
php cesta_k_souboru\composer.phar %*
Jestli vám, vše funguje jak má zjistíte tak, že do powershellu napíšete
composer
2) Zaregistrování cesty - automatizace
Nejdříve otevřete ovládací panely a zde klikněte na systém. Pokud se vám nezobrazuje, tak zvolte volbu (V Všechny položky Ovládacích panelů). Zde zvolte upřesnit nastavení systému

Poté proměnné prostředí

Zde poté musíte uvést do proměnné path cestu k adresáři, kde je uložen soubor php.exe a php.ini. Jedná se o systémovou proměnnou.
Ověření funkčnosti
Jestli vám, vše funguje jak má zjistíte tak, že do PowerShellu napíšete
composer
Mělo by Vám to vypsat něco takového:

Základní příkazy
composer init
Slouží pro inicializaci nového projektu. Postupně budete dotázání na tyto informace:
Package name (<vendor>/<name>)
Název balíčku například utils/linq.
Description
Popis nově vytvořeného projetku.
Author
Autorů může být samozřejmě více. formát zápisu - Milan Gallas <abcdef@gmail.com>
Minimum Stability
Volba stable (defaultní nastavení), nebo dev – podpora i dev verzí používaných balíčků. Některé balíčky ani jiné verze nemají. Vím o jedné rest knihovně nad Nette, která má pouze @dev.
Pak je ale ještě jedna možnost jak to nadefinovat minimální verzi a to:
"minimum-stability": "dev",
"prefer-stable": true
Podporuje dev verze, ale pokud je stabilní, tak jí dá přednost, jinak se může stát, že stahuje ke všemu dev verze a to většinou nechceme. Je lepší mít nad verzemi přehled.
Package Type – defaultní hodnota je (library). Při tomto nastavení se budou soubory kopírovat do adresáře vendor. Toto je nejpoužívanější forma. Pokud Vás zajímají další možnosti, tak Vás odkážu na oficiální dokumentaci https://getcomposer.org/…04-schema.md#type
License
můžete zvolit jednu, nebo více možností:
- Apache-2.0
- BSD-2-Clause
- BSD-3-Clause
- BSD-4-Clause
- GPL-2.0
- GPL-2.0+
- GPL-3.0
- GPL-3.0+
- LGPL-2.1
- LGPL-2.1+
- LGPL-3.0
- LGPL-3.0+
- MIT
Nakonec se vás v PowerShellu zeptá, zda chcete rovnou nadefinovat nějaké závislosti a pokud používáte git, tak jestli chcete přidat adresář vendor do .gitignore.
composer require
Přes tento příkaz stahujeme konkrétní repozitář. Například (kdyby/console) si do projektu nainstalujeme tímto příkazem
composer require kdyby/console
composer update
Pokud uděláte například změny v souboru composer.json (změna verzí, doplnění balíčku), nebo nemáte napevno stanovené verze a vyjdou nové, tak se tyto změny po příkazu composer update projeví = aktualizace balíčků.
Composer install
Postahuje nadefinované závislosti a vytvoří soubor autoload.php. Díky tomuto souboru si můžete automaticky načítat všechny soubory, které stáhnete přes Composer. Už nemusíte řešit načítání tříd, všechny udělá Composer za vás. Používá se při prvním buildu. Poté se používá příkaz composer update.
Závěr
Composer má mnoho dalších užitečných funkcí (vlastní autoload, tvorba vlastních scriptů pro tvorby kostry aplikace atd..). Composer by měl být součástí programovacího arzenálu každého PHP vývojáře, takže pokud ho zatím nepoužíváte a myslíte to s programováním vážně, tak je čas začít.
Komentáře
Zatím nikdo nevložil komentář - buď první!