Java týden
30 % bodů zdarma na online výuku díky naší Slevové akci!
Pouze tento týden sleva až 80 % na e-learning týkající se Javy.

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 aktuální Nette, tedy verzi 2.4.x, budete potřebovat PHP 5.6 a vyšší! My budeme používat nejnovější PHP 7, které je v době psaní tohoto článku PHP 7.3.

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 10), který má v sobě zabudovaný plugin přímo pro Nette a nemusíte ho tedy instalovat ručně, jako tomu bylo v předchozích verzích.

Pokud toto všechno máte, 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.

NetBeans

Pokud jste se rozhodli pracovat v NetBeans, tak je potřeba (no není to nutné, ale pro další práci je to lepší) udělat pár nastavení.

V hlavním okně NetBeans kliknete na Tools -> Options a v nově zobrazeném okně kliknete na PHP, vyberete záložku Frameworks & Tools, následně v bočním seznamu Nette2 a zadáte dvě cesty. První z nich je k "loaderu" Nette a druhá je k sandboxu.

Nastavení NetBeans pro Nette

Vytvoření projektu z sandboxu

Teď už máme snad všechno nastaveno a zbývá jen vytvoření projektu. To provedeme jako v každém jiném IDE - File -> New project.

Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

V nově otevřeném okně se zobrazí průvodce. Vybereme kategorii PHP a jako projekt zvolíme PHP Application.

Vytvoření PHP Nette projektu

V dalším kroku vyplníme název projektu (např. známé hello-world, ale na názvu nám teď nezáleží) a místo, kam se má uložit. Nejspíš někam, kam má přístup Apache server jako např. složka htdocs/.

Název Nette projektu a umístění

Ve třetím kroku není potřeba nic měnit a v posledním, tedy čtvrtém kroku, vyberete požadovaný framework - v našem případě Nette2 PHP Web Framework a klikneme na Finish.

Dokončení průvodce

Tímto jsem vytvořili první projekt postavený na Nette v rámci NetBeans IDE! :)

Pokud chceme používat novější vlastnosti jazyka (například ty z PHP 7), jak jsme psali výše, je potřeba tyto změny provést v composer.json souboru. V sekci dependencies uvidíte "php": ">=5.6.0". Tento řádek přepište na "php": ">=7.0.0". Dále na konci souboru naleznete následující konfiguraci.

"config": {
    "platform": {
        "php": "5.6"
    }
}

Tato konfigurace explicitně nastavuje verzi PHP na 5.6. Tuto část můžete smazat.

Tato část je užitečná, pokud chcete využívat novější vlastnosti PHP 7. Některé IDE, jako třeba PhpStorm, si podle konfiguraci v composer.json nastaví aktuální verzi PHP. Při použití novějších vlastností jazyka poté budou hlásit chybu. Explicitním nastavením verze PHP na verzi 7 (případně vyšší jako >= 7.3.0), budete moci využívat novějších konstrukcí jazyka a IDE tomu bude rozumět. Tyto změny je nutné provést i v případě, že jste vytvářeli projekt pomocí composeru.

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 vytvořit 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/.

Soubor přidáme kliknutím pravým tlačítkem na Source Files v okně NetBeans a vybereme z kontextové nabídky New -> Other... V otevřeném okně zvolíme kategorii Other a v pravém sloupci vybereme Empty file. Klikneme na Next a jako název souboru napíšeme .htaccess a klikneme na Finish.

Do vytvořeného souboru napíšeme nebo vložíme následující 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>

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 DocumentRoot proměnnou 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 vám měla zobrazit podobná stránka jako vidíte níže. Potom jste vše udělali správně a jsme tedy na správné cestě k naučení se Nette a k příští lekci.

Zprovozněný sandbox v Nette frameworku

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. Ve složce sandbox/www/checker/ se nachází tzv. Requirement Checker (pro starší verze Nette ho hledejte v jiné složce). Spouští se zadáním adresy - http://localhost/hello-world/checker/ a umožňuje ověřit správnost všech závislostí:

Nette Checker

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.

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.


 

Stáhnout

Staženo 720x (1.66 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
Článek pro vás napsal michalkasparec
Avatar
Jak se ti líbí článek?
30 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 (20)

 

 

Komentáře
Zobrazit starší komentáře (34)

Avatar
Jirka Veselý:4.12.2018 18:32

Ahoj, pořád mi nechce naběhnout nette, vždy se mi po spuštění index.php zobrazí kód php. Nejspíš potřebuji nastavit apache, ale nevím jak...

 
Odpovědět
4.12.2018 18:32
Avatar
Kureii
Redaktor
Avatar
Kureii:27.6.2019 22:00

Rád bych se zeptal jestli bude aktualizace článků pro nette 3. V netbeans jsem nenašel možnost pro nette 3.

 
Odpovědět
27.6.2019 22:00
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kureii
David Čápka:27.6.2019 22:26

Až bude dokumentace konečně funkční - https://doc.nette.org/….0/migration

Editováno 27.6.2019 22:27
Odpovědět
27.6.2019 22:26
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
michaelmik
Člen
Avatar
michaelmik:8.7.2019 21:59

Zdravím, jsem nováček ve frameworcích a vůbec netuším jak mám do NetBeans 10 vložit nette sandbox :) .. nevím co to je a jak se to tam instaluje .. byl by tu někdo ochotný mi pomoci ? děkuji moc :)

 
Odpovědět
8.7.2019 21:59
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na michaelmik
David Čápka:8.7.2019 22:27

Cituji z minulého článku:

Sandbox je kostra webové aplikace s Nette frameworkem, do které budeme dále přidávat stránky a tak vytvoříme svůj web na Nette. Sandbox je samozřejmě ke stažení na stránkách Nette, v dalším dílu si ho stáhneme.

Odpovědět
8.7.2019 22:27
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
michaelmik
Člen
Avatar
Odpovídá na David Čápka
michaelmik:8.7.2019 22:36

Děkuji :) už to chápu

 
Odpovědět
8.7.2019 22:36
Avatar
Tomáš Kreisinger:18.12.2019 16:17

Ahoj, děkuji za pěkný článek.
Mám problém s rozchozením čistého frameworku v NetBeans.
Na čerstvé instalaci Apache Netbeans 11.2 jsem založil projekt Nette. Zdrojová data jsou z: Nette-2.4–20180918; server: XAMPP 7.3.11.

Bez úpravy vygenerovaného projektu hlásí: "Cannot load presenter ‚Index:Php‘, class ‚App\IndexModu­le\Presenters\PhpPre­senter‘ was not found."

Postup jsem zopakoval víckrát a už si opravdu nevím rady :-) Díky za každou radu.

 
Odpovědět
18.12.2019 16:17
Avatar
Odpovídá na Tomáš Kreisinger
Tomáš Kreisinger:20.12.2019 16:13

Problém vyřešen. Projekt bylo potřeba pouštět pomocí tlačítka F6 v Netbbeans a ne pomocí volby Run po kliknutí na index.php pravým tlačítkem.

 
Odpovědět
20.12.2019 16:13
Avatar
Jaroslav Patrný:2. února 18:43

Ahoj, po upgradu na PHP ze 7.3. na 7.4.1. mi vše co mám v Nette vyhazuje tuto hlášku: "Trying to access array offset on value of type bool". Na PHP 7.3. mi vše chodilo (i složitější projekty). Pro ověření jsem se vrátil až sem na začátek, ale je to stejné. Checker až na memcache (to se mi zatím nepodařilo opravit) je O.K. Kde mohu prosím hledat chybu?

 
Odpovědět
2. února 18:43
Avatar
Michal Zoubek
Brigádník
Avatar
Michal Zoubek:12. května 4:47

Ahoj, chci se zeptat, co přesně je myšleno v současné době cestou k Sandboxu a cestou k source Nette :). Například source po mně požaduje soubor loader.php, který je hluboko ve složce vendor/latte/lat­te/src/Latte. Dokáže mi někdo, prosím, říct, co přesně jsou zdrojáky Nette a co samotný sandbox, který je výše uveden jako složka "sandbox"? Díky :)

Odpovědět
12. května 4:47
Java? K snídani...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 44. Zobrazit vše