05 - Composer - Sestavení aplikace
Cílem této hodiny je představit Composer. Je to nástroj pro správu balíčků. Používá se k vyřešení závislostí na knihovnách třetích stran a sestavení aplikace.
Z velké části je cílem tohoto cvičení, aby jste si pohráli s knihovnama dostupnýma na Packagistu, nějaké si zkusili nainstalovat s zprovoznit.
Bod za cvičení obdržíte, pokud u sebe ukážete alespoň 2 úspěšně zprovozněné knihovny. Příklady knihoven níže jsou přiklady na jednoduchá zadání, ale pokud máte vlastní nápady, nebojte se je použít ;)
Teorie
Composer (Společně)
- vytvořte výchozí
composer.json
(init
) - přidejte závislosti (
require
) a nainstalujte je (install
) pokud máte správně organizované třídy, můžete váš autoloader odstranit a nastavit composer např.
"autoload": { "psr-4": {"Eshop\\": "src/"} },
přidejte do vaší aplikace načtení autoloaderu
require 'vendor/autoload.php';
V závislosti na předchozím bodu budete používat buď oba (váš i z composeru) nebo jen jeden.
Validátor
Nastavení pravidel je možné mnoha způsoby, pro začátek vyzkoušejte např. AttributeLoader, kdy pravidla nadefinujete pomocí anotací ve třídě modelu.
- nadefinujte několik validačních pravidel (např. DPH 0-100%)
- vytvořte validátor pro příslušný způsob
- vytvořte instance modelů s chybami a spusťte validaci
- vypište chyby na výstup nebo do logu (viz níže)
Debugger nástroj
Nainstalujte si a zrovozněte v projektu nějaký debugger nástroj, mezi horké tipy patří:
- tracy/tracy
- symfony/error-handler
- Mnoho dalších
Debug nástroj zprovozněte a zajistěte, aby veškeré chyby ukládal do nové složky logs
Generátor QR kódů
- Nainstalujte si knihovnu pro generování QR kódů.
- Vytvořte PHP soubor dostupný přes webový server, který po spuštění přes URL ukáže rovnou QR kód obsahující jedno z následujících.
- Nějakou hezkou webovou adresu
- V tomto případě by bylo super, kdyby cílová adresa byla předána v rámci GET parametrů v url adrese a doplňěna
- QR pro platbu za vybranou objenávku utvořenou v eshopu
- V tomto případě souboru předáte několik objednávek, pomocí GET parametru bude možné vybrat QR kód pro platbu konkrétní objednávky podle ID
- Nějakou hezkou webovou adresu
GET parametry budou dostupné v $_GET
proměnné. Je nutné vhodně ošetřit, že GET parametr existuje a neobsahuje pro váš script nebezpečné údaje.