Lekce 2 - Nette sandbox a IDE
V minulé lekci, Úvod do Nette frameworku pro PHP, jsme si udělali úvod do Nette frameworku.
V dnešním tutoriálu si připravíme potřebné nástroje pro Nette.
Potřebný software
Jako první, co je potřeba udělat, je připravit si správný software, který budeme potřebovat. Budu předpokládat, že máte nainstalovaný a zprovozněný webový server Apache + PHP + MySQL. Pokud ne, tak pro začátečníky doporučuji XAMPP.
Pro instalaci Nette, budeme potřebovat PHP 7.4 a vyšší!
Dále pro ty, co jsou zvyklí psát v editoru jako třeba PSPad, bych doporučil nějaké IDE, které vám práci usnadní. Doporučuji NetBeans (aktuální verze v době psaní tohoto článku je 12.1) a nebo PhpStorm. Já budu používat NetBeans, tak budu dávat konkrétní postup přímo na toto IDE.
Pokud toto všechno máme, tak budeme samozřejmě potřebovat Nette
framework. Ten stáhneme na oficiálním webu v sekci download a to v aktuální verzi a
rozbalíme do nějaké složky na disku. Nejlepší bude, když ale využijeme
composer
a nainstalujeme framework pomocí toho. Kdybychom chtěli
přidávat nějaké další balíčky, budeme ho stejně potřebovat. Pokud composer tedy nemáte, nainstalujte si ho
Instalace Nette
Pokud máme všechny nástroje nainstalované, nainstalujeme si framework.
Najdeme si nějakou složku, kde má Apache přístup (například
htdocs/
). Jsme tedy v kořenové složce a otevřeme si zde
terminál. Ten můžeme otevřít několika způsoby, nejjednodušší je asi
kliknout na cestu ve složce a napsat do cesty cmd a potvrdit klávesou Enter na
klávesnici:

Nyní do něj zadáme příkaz:
composer create-project nette/sandbox hello-world
Poslední slovo hello-world
je název našeho projektu, tedy i
složky. Zkontrolujme složku, kde jsme otevřeli příkazový řádek a
ověřte, zda se vytvořila nová složka s názvem
hello-world/
.
Teď nám zbývá si projekt otevřít ve svém IDE, většinou stačí kliknout na File -> Open project a vybrat cestu k našemu projektu.
Pokud bychom nechtěli mít nejaktuálnější verzi či nám instalace nějak nešla, můžeme si stáhnout projekt pod článkem a začít pracovat na něm.
Tímto jsem vytvořili první projekt postavený na Nette!
Směrování
Jelikož vlastní soubor index.php
se nachází ve složce
www/
, tak výsledná adresa bude vypadat jako
http://localhost/hello-world/www/
. Elegantní cesta, jak to
vylepšit v rámci Apache serveru, je změnit v kořenovém adresáři projektu
soubor .htaccess
. Pomocí něj se poté můžeme snadno
přesměrovat do složky www/
a URL adresa bude vypadat jako
http://localhost/hello-world/
.
Pokud soubor .htaccess
v kořenovém adresáři
otevřeme, najdeme v něm pouze jednu direktivu:
Require all denied
Direktiva znamená, že pokud by chtěl jít někdo do kořenové složky projektu, tak k němu nebude mít přístup (napíše mu to error). Direktivu smažeme a vložíme do něj pouze tento kód:
<IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^$ www/ [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !^www/ RewriteRule ^(.*)$ www/$1 </IfModule>
Pokud děláme pouze takovou zkoušku, je tento způsob vhodný. Pokud děláme ale reálnou aplikaci, kterou bychom chtěli třeba i prodávat, nikdy toto nedělejte. Uživatel pak bude moct zobrazit další složky (např logy či zdrojáky) a je to velká bezpečnostní díra.
Alternativním řešení je přinutit Apache, aby automaticky první
navštívil složku www/
. To můžeme udělat dvěma způsoby.
Prvním z nich je nastavit proměnnou DocumentRoot
v
konfiguračním souboru httpd.conf
. Pokud tuto proměnnou
nastavíte na www
složku Nette, máte zajištěno, že se
uživatel nedostane mimo (po nastavení je potřeba restartovat Apache server).
Alternativním způsobem je nastavit tzv. virtuální hosty. Jejich nastavení
je nicméně mimo obsah tohoto článku.
Tím se dostáváme k dnešnímu výsledku, kdy by se nám měla zobrazit podobná stránka, jako vidíme níže. Potom jsme vše udělali správně a jsme tedy na správné cestě k naučení se Nette a k příští lekci:

Další způsob si ukážeme v další lekci přímo přes
vestavěný server PHP
Requirements checker
Někdy se může hodit ověřit, zda nastavení Apache a PHP splňuje podmínky pro správný běh Nette frameworku. Toto se již ověřovat nemusí, Nette bude běžet správně, pokud má minimální požadovanou verzi PHP. Pokud jste nainstalovali Nette dnes, berte text níže jako bezpředmětný.
Ve složce sandbox/www/checker/
se nacházel tzv.
Requirement Checker. Spouštěl se zadáním adresy -
http://localhost/hello-world/checker/
a umožňoval ověřit
správnost všech závislostí:

Všechny řádky by měly svítit zeleně. Pokud je nějaký žlutý, tak to nevadí a framework pojede, jen nebudete moci využívat danou funkcionalitu. Ale jak jsem již zmínil, v současné době je již tento nástroj zbytečný a už není součást instalace.
Příště, v lekci První aplikace v Nette, si vytvoříme svou první aplikaci v Nette. Prozradím, že se jedná o jednoduchou kalkulačku.
Měl jsi s čímkoli problém? Stáhni si vzorovou aplikaci níže a porovnej ji se svým projektem, chybu tak snadno najdeš.
Stáhnout
Stažením následujícího souboru souhlasíš s licenčními podmínkami
Staženo 946x (6.67 MB)
Aplikace je včetně zdrojových kódů v jazyce PHP