Compser pro PHP - automatizace

PHP Ostatní Compser pro PHP - automatizace

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.


 

  Aktivity (2)

Článek pro vás napsal Milan Gallas
Avatar
Autor se věnuje programování, hardwaru a počítačovým sítím.

Jak se ti líbí článek?
Celkem (3 hlasů) :
55555


 


Miniatura
Všechny články v sekci
Ostatní tutoriály v PHP

 

 

Komentáře

Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zatím nikdo nevložil komentář - buď první!