Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

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:

Základy Nette frameworku

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:

Základy Nette frameworku

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í:

Základy Nette frameworku

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 926x (6.67 MB)
Aplikace je včetně zdrojových kódů v jazyce PHP

 

Předchozí článek
Úvod do Nette frameworku pro PHP
Všechny články v sekci
Základy Nette frameworku
Přeskočit článek
(nedoporučujeme)
První aplikace v Nette
Článek pro vás napsal michalkasparec
Avatar
Uživatelské hodnocení:
105 hlasů
Autor se věnuje backendovým systémům postavených na .NET Core a databázím MS-SQL a pracuje ve společnosti Avast Software..
Aktivity