Compser pre PHP - automatizácia
V tomto článku vysvetlím čo to vlastne Composer je, na čo sa používa a pozrieme sa spolu na základné príkazy. Ďalšia vec, ktorú vám chcem ukázať, je inštalácia o konfigurácie, ktorá mnohokrát nie je pre začiatočníkov moc prívetivá, hlavne kvôli automatizáciu, vďaka ktorej je používanie nástroja veľmi pohodlné.
Čo to je Composer
Composer je nástroj pre správu závislostí v programovacom jazyku PHP. Nielen, že cez neho môžeme sťahovať jednotlivé knižnice (balíky z webu https://packagist.org/), ale dokonca sa postará o dohraní ďalších balíčkov, ktoré sú potrebné pre beh stiahnuté knižnice. Ďalej umožňuje jednoduchú výmenu verzií používaných knižníc a prípadne odstránenie všetkých nepotrebných.
Cez composer sa dá ale vytvoriť aj samotná kostra projektu vďaka tzv. Skeletonu, ale o tom až neskôr.
Ak budete pracovať niekde vo firme ako programátor, tak sa tomuto nástroju s veľkou pravdepodobnosťou nevyhnete, preto odporúčam sa ho naučiť používať.
Stiahnutia a inštalácie
Základnej inštalácie
Samotný composer si môžete stiahnuť z https://getcomposer.org/download/
Pre windows je vytvorený jednoduchý installer, preto ho tu popisovať nebudem, a pre Linux stačí napísať do konzoly nasledujúce prí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ý príkaz obsahuje hash, ktorý sa mení s každou novo vydanou verziou.
Odporúčam postupovať podľa oficiálnych stránok, ak viete aspoň trochu anglicky. Ak inštalujete pre Windows a nejde vám installer, tak sa uistite, že máte v súbore php.ini povolené OpenSSL. Musí tam byť nasledujúci riadok:
extension=php_opensssl.ddl
Ak ste túto závislosť pridali, tak bude potrebné reštartovať server.
Ručné inštalácie súboru php.phar
Ak z nejakého dôvodu potrebujete ručné stiahnutie pre windows, tak do príkazového riadku napíšte
php -r "eval('?>'.file_get_contents('https://getcomposer.org/installer'))"
a nainštalujte do adresára, kde máte uložené PHP.
Automatizácia
V adresári, kde máte uložené php.exe a composer.phar, vytvorte tu súbor composer.bat a vložte do neho nasledujúci kód:
@echo off php cesta_k_souboru\composer.phar %*
Ak vám, všetko funguje ako má zistíte tak, že do PowerShellu napíšete
composer
2) Zaregistrovanie cesty - automatizácia
Najskôr otvorte ovládacie panely a tu kliknite na systém. Ak sa vám nezobrazuje, tak zvoľte voľbu (V Všetky položky Ovládacích panelov). Tu zvoľte upresniť nastavenie systému
Potom premenné prostredia
Tu potom musíte uviesť do premennej path cestu k adresáru, kde je uložený súbor php.exe a php.ini. Ide o systémovú premennú.
Overenie funkčnosti
Ak vám, všetko funguje ako má zistíte tak, že do PowerShellu napíšete
composer
Malo by Vám to vypísať niečo takéto:
Základné príkazy
Composer init
Slúži pre inicializáciu nového projektu. Postupne budete opýtaní na tieto informácie:
Package name (<vendor> / <name>)
Názov balíka napríklad utils / LINQ.
Description
Popis novovytvoreného projetku.
Author
Autorov môže byť samozrejme viac. formát zápisu - Milan Gallas < abcdef @ gmail.com >
Minimum Stability
Voľba stable (defaultné nastavenie), alebo dev - podpora aj dev verzií používaných balíčkov. Niektoré balíky ani iné verzie nemajú. Viem o jednej rest knižnici nad Nette, ktorá má iba @dev.
Potom je ale ešte jedna možnosť ako to nadefinovať minimálnu verziu a to:
"minimum-stability": "dev", "prefer-stable": true
Podporuje dev verzie, ale ak je stabilný, tak jej dá prednosť, inak sa môže stať, že sťahuje ku všetkému dev verzie a to väčšinou nechceme. Je lepšie mať nad verziami prehľad.
Package Type - defaultná hodnota (library). Pri tomto nastavení sa budú súbory kopírovať do adresára vendor. Toto je najpoužívanejší forma. Ak Vás zaujímajú ďalšie možnosti, tak Vás odkážem na oficiálnej dokumentáciu https://getcomposer.org/...04-schema.md#type
License
môžete zvoliť jednu, alebo viac možností:
- Apache-2.0
- BSD-2-Clausa
- BSD-3-Clausa
- BSD-4-Clausa
- 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
Nakoniec sa vás v PowerShellu opýta, či chcete rovno nadefinovať nejaké závislosti a ak používate git, tak ak chcete pridať adresár vendor do .gitignore.
Composer require
Cez tento príkaz sťahujeme konkrétny repozitár. Napríklad (keby / console) si do projektu nainštalujeme týmto príkazom
composer require kdyby/console
Composer update
Ak urobíte napríklad zmeny v súbore composer.json (zmena verzií, doplnenie balíčka), alebo nemáte napevno stanovené verzie a vyjdú nové, tak sa tieto zmeny po príkaze composer update prejaví = aktualizácie balíčkov.
Composer install
Postahuje nadefinované závislosti a vytvorí súbor autoload.php. Vďaka tomuto súboru si môžete automaticky preberať všetky súbory, ktoré stiahnete cez Composer. Už nemusíte riešiť načítanie tried, všetky urobí Composer za vás. Používa sa pri prvom buildu. Potom sa používa príkaz composer update.
Záver
Composer má mnoho ďalších užitočných funkcií (vlastný AutoLoad, tvorba vlastných scriptov pre tvorby kostry aplikácie atď ..). Composer by mal byť súčasťou programovacieho arzenálu každého PHP vývojárov, takže ak ho zatiaľ nepoužívate a myslíte to s programovaním vážne, tak je čas začať.