nette: jak rozbít atom?
DESCRIPTION
TRANSCRIPT
![Page 1: Nette: jak rozbít atom?](https://reader033.vdocuments.site/reader033/viewer/2022061214/549a7085b47959654d8b592b/html5/thumbnails/1.jpg)
Už dlouho to viselo ve vzduchu…
![Page 2: Nette: jak rozbít atom?](https://reader033.vdocuments.site/reader033/viewer/2022061214/549a7085b47959654d8b592b/html5/thumbnails/2.jpg)
11. 5. 2014
A pak se to stalo. Nette Framework byl rozdělen na malé části.
![Page 3: Nette: jak rozbít atom?](https://reader033.vdocuments.site/reader033/viewer/2022061214/549a7085b47959654d8b592b/html5/thumbnails/3.jpg)
Nette Framework byla vždy rodina spolupracujících členů.
![Page 4: Nette: jak rozbít atom?](https://reader033.vdocuments.site/reader033/viewer/2022061214/549a7085b47959654d8b592b/html5/thumbnails/4.jpg)
Laděnka
Asi nejstarší je Nette Debugger, nebo-li Laděnka.Protože cizinci neumí říkat ď, přejmenovali jsme jí na Tracy.
Tracy
![Page 5: Nette: jak rozbít atom?](https://reader033.vdocuments.site/reader033/viewer/2022061214/549a7085b47959654d8b592b/html5/thumbnails/5.jpg)
Tracy má dva klíčové úkoly: 1) POHODLÍ: zpřehlednit málo čitelné chybové hlášky PHP…
![Page 6: Nette: jak rozbít atom?](https://reader033.vdocuments.site/reader033/viewer/2022061214/549a7085b47959654d8b592b/html5/thumbnails/6.jpg)
…do této podoby (kdo dnes tuhle obrazovku neznal?)
![Page 7: Nette: jak rozbít atom?](https://reader033.vdocuments.site/reader033/viewer/2022061214/549a7085b47959654d8b592b/html5/thumbnails/7.jpg)
2) BEZPEČNOST: zabránit probublání chybových hlášek v produkčním režimu, protože mohou obsahovat citlivé údaje, včetně hesel.
![Page 8: Nette: jak rozbít atom?](https://reader033.vdocuments.site/reader033/viewer/2022061214/549a7085b47959654d8b592b/html5/thumbnails/8.jpg)
Jakmile totiž vaše aplikace vypíše něco podobného, bude v bezpečnostním auditu ohodnocena nula špačky z pěti.
![Page 9: Nette: jak rozbít atom?](https://reader033.vdocuments.site/reader033/viewer/2022061214/549a7085b47959654d8b592b/html5/thumbnails/9.jpg)
Latte
Toto je pán, co pije Latte. A Latte, stejně jako Tracy, myslí na pohodlí a bezpečnost. Příklad?
![Page 10: Nette: jak rozbít atom?](https://reader033.vdocuments.site/reader033/viewer/2022061214/549a7085b47959654d8b592b/html5/thumbnails/10.jpg)
Většina programátorů neví, jakou escapovací funkci použít v uvedených případech. A ti co ví, se mohou splést, nebo na escapování zapomenout.
XSS
![Page 11: Nette: jak rozbít atom?](https://reader033.vdocuments.site/reader033/viewer/2022061214/549a7085b47959654d8b592b/html5/thumbnails/11.jpg)
Latte tohle řeší automaticky. Navíc brání vzniku XSS třeba i kontrolou vypisovaných URL. Psát šablony v Latte je velmi pohodlné.
![Page 12: Nette: jak rozbít atom?](https://reader033.vdocuments.site/reader033/viewer/2022061214/549a7085b47959654d8b592b/html5/thumbnails/12.jpg)
Tracy a Latte (nebo další členy Nette rodiny) lze a dokonce je záhodno použít prakticky na jakémkoliv webu. Jenže to znamenalo připojit celý
framework. Což technicky není problém, nepoužívané části nepřekážejí, web nezpomalují a Nette existuje i v jednosouborové verzi.
![Page 13: Nette: jak rozbít atom?](https://reader033.vdocuments.site/reader033/viewer/2022061214/549a7085b47959654d8b592b/html5/thumbnails/13.jpg)
ZendoviAle je to problém mentální. Pokud chci randit s Tracy, nechci k sobě
stěhovat celou její rodinu. Zejména, když už jednu rodinu mám.
![Page 14: Nette: jak rozbít atom?](https://reader033.vdocuments.site/reader033/viewer/2022061214/549a7085b47959654d8b592b/html5/thumbnails/14.jpg)
Rozhodli jsme se vyjít programátorům vstříc a rozdělit členy Nette rodiny do samostatně použitelných jednotek.
![Page 15: Nette: jak rozbít atom?](https://reader033.vdocuments.site/reader033/viewer/2022061214/549a7085b47959654d8b592b/html5/thumbnails/15.jpg)
NetteTeste
rPrvní osamostatněný byl Tester, nástroj pro testování Nette. Což bylo
snadné, protože záměrně nikdy neměl s Nette žádnou třídu společnou.
![Page 16: Nette: jak rozbít atom?](https://reader033.vdocuments.site/reader033/viewer/2022061214/549a7085b47959654d8b592b/html5/thumbnails/16.jpg)
Nette Tester je dnes plnohodnotný testovací nástroj, který mimo jiné spouští testy paralelně, a hlavně má hezké logo :-)
![Page 17: Nette: jak rozbít atom?](https://reader033.vdocuments.site/reader033/viewer/2022061214/549a7085b47959654d8b592b/html5/thumbnails/17.jpg)
Je integrován taky do poslední verze NetBeans.
![Page 18: Nette: jak rozbít atom?](https://reader033.vdocuments.site/reader033/viewer/2022061214/549a7085b47959654d8b592b/html5/thumbnails/18.jpg)
Nette Obje
ctDalší dělení však představovalo obrovský technický problém. Příklad za všechny: třídy v Nette dědí od společného předka, třídy Nette\Object.
![Page 19: Nette: jak rozbít atom?](https://reader033.vdocuments.site/reader033/viewer/2022061214/549a7085b47959654d8b592b/html5/thumbnails/19.jpg)
Primárním posláním Nette\Object je zamezit překlepům, které PHP jinak zamlčí a dají se odhalit jen statickou analýzou.
![Page 20: Nette: jak rozbít atom?](https://reader033.vdocuments.site/reader033/viewer/2022061214/549a7085b47959654d8b592b/html5/thumbnails/20.jpg)
Nebo pomocí Nette\Object, které vás za každý překlep zpraží pohledem. Jenže jak mít stejnou třídu v každé samostatné jednotce?
Přičemž luxusu, který dopřává, se vzdát nechcete. Co s tím?
![Page 21: Nette: jak rozbít atom?](https://reader033.vdocuments.site/reader033/viewer/2022061214/549a7085b47959654d8b592b/html5/thumbnails/21.jpg)
Rozdělení Nette bylo proveditelné teprve ve chvíli, kdy se v PHP (konečně) objevil široce respektovaný balíčkovací nástroj.
![Page 22: Nette: jak rozbít atom?](https://reader033.vdocuments.site/reader033/viewer/2022061214/549a7085b47959654d8b592b/html5/thumbnails/22.jpg)
COMP-OSER
Stal se jím Composer.Asi nejdůležitější počin posledních let. Seznamte se s ním!
![Page 23: Nette: jak rozbít atom?](https://reader033.vdocuments.site/reader033/viewer/2022061214/549a7085b47959654d8b592b/html5/thumbnails/23.jpg)
nette/applicationnette/bootstrapnette/cachingnette/component-modelnette/databasenette/dinette/findernette/formsnette/httpnette/latte
nette/mailnette/neonnette/php-generatornette/reflectionnette/robot-loadernette/safe-streamnette/securitynette/testernette/tokenizernette/tracynette/utils
Každá část Nette dostala samostatný repozitář (se zachováním historie), vlastní issue tracker, atd. Jen rozdělení repozitáře trvalo stovky hodin.
![Page 24: Nette: jak rozbít atom?](https://reader033.vdocuments.site/reader033/viewer/2022061214/549a7085b47959654d8b592b/html5/thumbnails/24.jpg)
nette/applicationnette/bootstrapnette/cachingnette/component-modelnette/databasenette/dinette/findernette/formsnette/httpnette/latte
nette/mailnette/neonnette/php-generatornette/reflectionnette/robot-loadernette/safe-streamnette/securitynette/testernette/tokenizernette/tracynette/utils
Některé části mají závislosti na jiných částech, obvykle na nette/utils, které obsahuje třeba zmíněnou třídu Nette\Object.
![Page 25: Nette: jak rozbít atom?](https://reader033.vdocuments.site/reader033/viewer/2022061214/549a7085b47959654d8b592b/html5/thumbnails/25.jpg)
composer require tracy/tracy
Instalace nebo aktualizace Tracy je díky Composeru otázkou jednoho příkazu. (Tracy ale můžete stáhnout i jako PHAR).
![Page 26: Nette: jak rozbít atom?](https://reader033.vdocuments.site/reader033/viewer/2022061214/549a7085b47959654d8b592b/html5/thumbnails/26.jpg)
A co se mění pro spokojené uživatele celé Nette family, kteří ji chtějí používat v celku jako dosud? Pro ty mám dobrou zprávu: vůbec nic.
![Page 27: Nette: jak rozbít atom?](https://reader033.vdocuments.site/reader033/viewer/2022061214/549a7085b47959654d8b592b/html5/thumbnails/27.jpg)
Nadále můžete celý balík stáhnout na webu. Jen jsme začali vynechávat z názvu slovo framework.
![Page 28: Nette: jak rozbít atom?](https://reader033.vdocuments.site/reader033/viewer/2022061214/549a7085b47959654d8b592b/html5/thumbnails/28.jpg)
composer require nette/nette
Stejně tak ho můžete instalovat pomocí Composeru.
![Page 29: Nette: jak rozbít atom?](https://reader033.vdocuments.site/reader033/viewer/2022061214/549a7085b47959654d8b592b/html5/thumbnails/29.jpg)
11. 5. 2014
Pro tyhle uživatele bylo 11. 5. 2014 normálním dnem v roce :-)Ale pokud udržujete starší projekt v čistém PHP …
![Page 30: Nette: jak rozbít atom?](https://reader033.vdocuments.site/reader033/viewer/2022061214/549a7085b47959654d8b592b/html5/thumbnails/30.jpg)
<?php
Tracy\Debugger::enable();
…nebo pokud používáte Zend Framework či programuje pro WordPress, můžete teď hned udělat něco pro své pohodlí a bezpečnost,
a nasadit třeba Tracy. Je to úplně snadné.
![Page 31: Nette: jak rozbít atom?](https://reader033.vdocuments.site/reader033/viewer/2022061214/549a7085b47959654d8b592b/html5/thumbnails/31.jpg)
Děkuji za pozornost.@geekovo – @davidgrudl – @netteframework – #nettefw