Instalace
Stažení
PHP Jet je distribuován jako kompletní balíček obsahující jak knihovnu samotnou, tak veškeré nástroje a rovněž ukázkovou aplikaci včetně instalátoru. Tento balíček můžete stáhnout zde.
Pro stažení rovněž můžete použít composer:
composer create-project mirekmarek/php-jet
PHP Jet nemá žádné závislosti na jakýchkoliv dalších knihovnách a v základu nevyžaduje žádné moduly PHP, které by nebylo možné považovat za zcela standardní.
Rychlé otestování
Pokud si PHP Jet chcete zatím jen "osahat", tak toto je nejsnadnější cesta:
- Ujistěte se, že máte nainstalované PHP 8, včetně všech standardních modulů.
- Přejděte do adresáře, kde máte stažený a rozbalený PHP Jet.
- Spusťte:
php _playground/start.php
- Ve vašem prohlížeči otevřít URL http://localhost:8000/ (pokud jste při spuštění hřiště neurčili jinou adresu a port).
- Dokončete instalaci pomocí webového instalátoru.
Plnohodnotná instalace
Jet je framework určený pouze pro PHP8 a novější. Tedy budete určitě potřebovat testovací prostředí s touto verzí PHP.
PHP Jet samotný a aplikace na jeho bázi vytvořené vyvíjíme, testujeme a v praxi provozujeme na dvou typech web serverů Apache a NGINX. Pravděpodobně je bez problémů možný provoz i na jiném web serveru (např. IIS).
Rovněž stojí za zmínku, že Jet je primárně vyvíjen a provozován ve světě OS GNU/Linux, ale určitě je možné provozovat jej na Windows (v praxi používáno kolegy) a samozřejmě i jiných unix systémech jako je MacOS X, BSD a tak dále.
Předpokládám, že víte jak nainstalovat a konfigurovat zmíněné web servery, PHP samotné, moduly PHP, MySQL/MariaDB a tak dále. Proto se zaměřím na potřebné nastavení web serveru a instalaci Jet (respektive ukázkové aplikace Jet) samotnou.
Obecný základ
Při vývoji aplikací postupujeme tak, že každý projekt má svůj virtuál v rámci web serveru. A to jak na počítačích jednotlivých vývojářů, tak samozřejmě na vývojovém a testovací serveru. Každý projekt může mít (a většinou má) své specifické podmínky, dlouho životnost a tak dále. Proto je snaha hned od začátku vývoje simulovat podmínky budoucího reálného nasazení projektu.
Proto pro každý projekt vytváříme "fiktivní doménu" a záznam do hosts souboru. A každý projekt má svůj virtuál v rámci web serveru.
V praxi jsem poznal vývojáře, kteří měli vše v rámci jednoho adresáře a když chtěji svůj projekt testoval tak že do prohlížeče zadávali například URL http://localhost/muj-projekt-1/.
Pravděpodobně by bylo možné toto dělat i s Jet aplikacemi, ale zde bude popsán postup, kdy má každý projekt svůj virtuál.
Jako přípravu pro spuštění na vašem lokálním počítači je tedy nutné:
- Ujistit se, že máte k dispozici PHP8 a novější.
- Pomocí záznamu v hosts souboru vytvořit "fiktivní doménu".
- Vytvořit adresář určený pro Jet a do něj rozbalit balíček s Jet.
- Ideálně si vytvořit samostatnou testovací databázi (MySQL/MariaDB, nebo PostgreSQL). Ovšem pro účel seznámení se s Jet může stačit zabudovaná podpora pro SQLite - pokud vám to bude pro začátek stačit, pak testovací databázi vytvářet nemusíte.
- Nakonfigurovat web server (viz dále).
- V prohlížeči otevřít onu fiktivní URL a projít instalátorem ukázkové aplikace.
- Začít se seznamovat se světem PHP Jet ;-)
Nastavení web serveru Apache
Jak v rámci Apache vytvořit virtuál již patrně víte, nebo se dozvíte z dokumentace tohoto web serveru.
PHP Jet pro běh s web serverem Apache nepotřebuje nic jiného než zapnutý mod_rewrite (viz dokumentace vašeho systému).
A pozor na případný chyták s nutností povolit AllowOverride All!
Nastavení web serveru NGINX
Pojem "virtuál" patří pochopitelně do světa web serveru Apache (který je však starší a tento termín se tedy tak nějak "zažil"). NGINX používá termín "server blok".
Pro běh Jet (nebo již vašich projektů na Jet postavených) je nutné takový server blok vytvořit.
Níže najdete ukázku jak má takový server blok vypadat:
server {
listen 80;
listen [::]:80;
listen 443 ssl;
listen [::]:443 ssl;
ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;
server_name jet.lc;
root /home/user/projects/Jet;
index index.html;
location ~ /\.ht {
deny all;
}
location ~ ^/(css|js|images)/ {
try_files $uri $uri/ =404;
}
location / {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/application/bootstrap.php;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
}
location ~ ^/_tools/studio/(css|js|images)/ {
try_files $uri $uri/ =404;
}
location /_tools/studio/ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/_tools/studio/index.php;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
}
}
Poznámky k "server bloku" NGINX:
- Parametry server_name a root samozřejmě musíte nastavit podle situace na vašem počítači.
- Příklad zahrnuje použití SSL certifikátů určených pro lokální testování, které nabízí samotný NGINX. Ty samozřejmě nesmí být použity v ostrém provozu.
- Rovněž "location" související s nástrojem Jet Studio (/_tools/studio/) by neměly na ostrém serveru vůbec existovat stejně jako nástroj samotný.