SlideShare uma empresa Scribd logo
1 de 31
Už dlouho to viselo ve vzduchu…
11. 5. 2014
A pak se to stalo. Nette Framework byl rozdělen na malé části.
Nette Framework byla vždy rodina spolupracujících členů.
Laděnka
Asi nejstarší je Nette Debugger, nebo-li Laděnka.
Protože cizinci neumí říkat ď, přejmenovali jsme jí na Tracy.
Tracy
Tracy má dva klíčové úkoly:
1) POHODLÍ: zpřehlednit málo čitelné chybové hlášky PHP…
…do této podoby (kdo dnes tuhle obrazovku neznal?)
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.
Jakmile totiž vaše aplikace vypíše něco podobného,
bude v bezpečnostním auditu ohodnocena nula špačky z pěti.
Latte
Toto je pán, co pije Latte.
A Latte, stejně jako Tracy, myslí na pohodlí a bezpečnost. Příklad?
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
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é.
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.
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.
Rozhodli jsme se vyjít programátorům vstříc a rozdělit
členy Nette rodiny do samostatně použitelných jednotek.
Nette
TesterPrvní 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.
Nette Tester je dnes plnohodnotný testovací nástroj,
který mimo jiné spouští testy paralelně, a hlavně má hezké logo :-)
Je integrován taky do poslední verze NetBeans.
Nette
Object
Další 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 NetteObject.
Primárním posláním NetteObject je zamezit překlepům,
které PHP jinak zamlčí a dají se odhalit jen statickou analýzou.
Nebo pomocí NetteObject, 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?
Rozdělení Nette bylo proveditelné teprve ve chvíli, kdy se
v PHP (konečně) objevil široce respektovaný balíčkovací nástroj.
COMP-
OSERStal se jím Composer.
Asi nejdůležitější počin posledních let. Seznamte se s ním!
nette/application
nette/bootstrap
nette/caching
nette/component-model
nette/database
nette/di
nette/finder
nette/forms
nette/http
nette/latte
nette/mail
nette/neon
nette/php-generator
nette/reflection
nette/robot-loader
nette/safe-stream
nette/security
nette/tester
nette/tokenizer
nette/tracy
nette/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.
nette/application
nette/bootstrap
nette/caching
nette/component-model
nette/database
nette/di
nette/finder
nette/forms
nette/http
nette/latte
nette/mail
nette/neon
nette/php-generator
nette/reflection
nette/robot-loader
nette/safe-stream
nette/security
nette/tester
nette/tokenizer
nette/tracy
nette/utils
Některé části mají závislosti na jiných částech, obvykle na nette/utils,
které obsahuje třeba zmíněnou třídu NetteObject.
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).
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.
Nadále můžete celý balík stáhnout na webu.
Jen jsme začali vynechávat z názvu slovo framework.
composer require nette/nette
Stejně tak ho můžete instalovat pomocí Composeru.
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 …
<?php
TracyDebugger::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é.
Děkuji za pozornost.
@geekovo – @davidgrudl – @netteframework – #nettefw

Mais conteúdo relacionado

Destaque

Petr Kováčik - Personalizace webu
Petr Kováčik - Personalizace webuPetr Kováčik - Personalizace webu
Petr Kováčik - Personalizace webuDevelcz
 
Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti
Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivostiRiki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti
Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivostiDevelcz
 
Jiří Knesl - Techniky paralelního programování pro 21. století
Jiří Knesl - Techniky paralelního programování pro 21. stoletíJiří Knesl - Techniky paralelního programování pro 21. století
Jiří Knesl - Techniky paralelního programování pro 21. stoletíDevelcz
 
Martin Kopta - UX. Testujte. Hned. Pravidelně. S málem.
Martin Kopta - UX. Testujte. Hned. Pravidelně. S málem.Martin Kopta - UX. Testujte. Hned. Pravidelně. S málem.
Martin Kopta - UX. Testujte. Hned. Pravidelně. S málem.Develcz
 
Adam Herout - Kladivo na čarodějnice a dobrá data
Adam Herout - Kladivo na čarodějnice a dobrá dataAdam Herout - Kladivo na čarodějnice a dobrá data
Adam Herout - Kladivo na čarodějnice a dobrá dataDevelcz
 
Shopcamp: Jak to nepokazit v cílové rovince?
Shopcamp: Jak to nepokazit v cílové rovince?Shopcamp: Jak to nepokazit v cílové rovince?
Shopcamp: Jak to nepokazit v cílové rovince?David Grudl
 
FTP deployment Devel 2015
FTP deployment Devel 2015FTP deployment Devel 2015
FTP deployment Devel 2015David Grudl
 
ReactPHP + Symfony = profit aneb 1000req/s přes Symfony s minimálními nár...
ReactPHP + Symfony = profit aneb 1000req/s přes Symfony s minimálními nár...ReactPHP + Symfony = profit aneb 1000req/s přes Symfony s minimálními nár...
ReactPHP + Symfony = profit aneb 1000req/s přes Symfony s minimálními nár...Jakub Kulhan
 
WebSockets - how to do real-time applications in PHP
WebSockets - how to do real-time applications in PHPWebSockets - how to do real-time applications in PHP
WebSockets - how to do real-time applications in PHPBrnoPHP
 
Tomáš Votruba - Jak přežít Symfony 3 (1. sraz přátel Symfony v Praze)
Tomáš Votruba - Jak přežít Symfony 3 (1. sraz přátel Symfony v Praze)Tomáš Votruba - Jak přežít Symfony 3 (1. sraz přátel Symfony v Praze)
Tomáš Votruba - Jak přežít Symfony 3 (1. sraz přátel Symfony v Praze)Péhápkaři
 
Nikola luxova
Nikola luxovaNikola luxova
Nikola luxovacekaon
 
ORM Designer: Speed up your ORM development
ORM Designer: Speed up your ORM developmentORM Designer: Speed up your ORM development
ORM Designer: Speed up your ORM developmentBrnoPHP
 
06 prez10(tvorba webu)
06 prez10(tvorba webu)06 prez10(tvorba webu)
06 prez10(tvorba webu)olc_user
 
Deployment PHP aplikací | WebExpo 2011
Deployment PHP aplikací | WebExpo 2011Deployment PHP aplikací | WebExpo 2011
Deployment PHP aplikací | WebExpo 2011Jan Mittner
 
Jaroslav zlamal
Jaroslav zlamalJaroslav zlamal
Jaroslav zlamalcekaon
 
Av technika 13
Av technika 13Av technika 13
Av technika 13olc_user
 
VIM - nejefektivnější editor na světě
VIM - nejefektivnější editor na světěVIM - nejefektivnější editor na světě
VIM - nejefektivnější editor na světěClevis s.r.o.
 

Destaque (17)

Petr Kováčik - Personalizace webu
Petr Kováčik - Personalizace webuPetr Kováčik - Personalizace webu
Petr Kováčik - Personalizace webu
 
Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti
Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivostiRiki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti
Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti
 
Jiří Knesl - Techniky paralelního programování pro 21. století
Jiří Knesl - Techniky paralelního programování pro 21. stoletíJiří Knesl - Techniky paralelního programování pro 21. století
Jiří Knesl - Techniky paralelního programování pro 21. století
 
Martin Kopta - UX. Testujte. Hned. Pravidelně. S málem.
Martin Kopta - UX. Testujte. Hned. Pravidelně. S málem.Martin Kopta - UX. Testujte. Hned. Pravidelně. S málem.
Martin Kopta - UX. Testujte. Hned. Pravidelně. S málem.
 
Adam Herout - Kladivo na čarodějnice a dobrá data
Adam Herout - Kladivo na čarodějnice a dobrá dataAdam Herout - Kladivo na čarodějnice a dobrá data
Adam Herout - Kladivo na čarodějnice a dobrá data
 
Shopcamp: Jak to nepokazit v cílové rovince?
Shopcamp: Jak to nepokazit v cílové rovince?Shopcamp: Jak to nepokazit v cílové rovince?
Shopcamp: Jak to nepokazit v cílové rovince?
 
FTP deployment Devel 2015
FTP deployment Devel 2015FTP deployment Devel 2015
FTP deployment Devel 2015
 
ReactPHP + Symfony = profit aneb 1000req/s přes Symfony s minimálními nár...
ReactPHP + Symfony = profit aneb 1000req/s přes Symfony s minimálními nár...ReactPHP + Symfony = profit aneb 1000req/s přes Symfony s minimálními nár...
ReactPHP + Symfony = profit aneb 1000req/s přes Symfony s minimálními nár...
 
WebSockets - how to do real-time applications in PHP
WebSockets - how to do real-time applications in PHPWebSockets - how to do real-time applications in PHP
WebSockets - how to do real-time applications in PHP
 
Tomáš Votruba - Jak přežít Symfony 3 (1. sraz přátel Symfony v Praze)
Tomáš Votruba - Jak přežít Symfony 3 (1. sraz přátel Symfony v Praze)Tomáš Votruba - Jak přežít Symfony 3 (1. sraz přátel Symfony v Praze)
Tomáš Votruba - Jak přežít Symfony 3 (1. sraz přátel Symfony v Praze)
 
Nikola luxova
Nikola luxovaNikola luxova
Nikola luxova
 
ORM Designer: Speed up your ORM development
ORM Designer: Speed up your ORM developmentORM Designer: Speed up your ORM development
ORM Designer: Speed up your ORM development
 
06 prez10(tvorba webu)
06 prez10(tvorba webu)06 prez10(tvorba webu)
06 prez10(tvorba webu)
 
Deployment PHP aplikací | WebExpo 2011
Deployment PHP aplikací | WebExpo 2011Deployment PHP aplikací | WebExpo 2011
Deployment PHP aplikací | WebExpo 2011
 
Jaroslav zlamal
Jaroslav zlamalJaroslav zlamal
Jaroslav zlamal
 
Av technika 13
Av technika 13Av technika 13
Av technika 13
 
VIM - nejefektivnější editor na světě
VIM - nejefektivnější editor na světěVIM - nejefektivnější editor na světě
VIM - nejefektivnější editor na světě
 

Semelhante a Nette: jak rozbít atom?

Entity Framework: Optimalizace a záludnosti
Entity Framework: Optimalizace a záludnostiEntity Framework: Optimalizace a záludnosti
Entity Framework: Optimalizace a záludnostiProfinit
 
Strasti a slasti vývoje wp7 aplikací
Strasti a slasti vývoje wp7 aplikacíStrasti a slasti vývoje wp7 aplikací
Strasti a slasti vývoje wp7 aplikacíRené Stein
 
node.js: zápisky z fronty (Battle guide to node.js)
node.js: zápisky z fronty (Battle guide to node.js)node.js: zápisky z fronty (Battle guide to node.js)
node.js: zápisky z fronty (Battle guide to node.js)almadcz
 
Optimalizace Symfony na devu
 Optimalizace Symfony na devu Optimalizace Symfony na devu
Optimalizace Symfony na devuVašek Purchart
 
Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)
Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)
Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)Péhápkaři
 
Závislosti, injekce a vůbec
Závislosti, injekce a vůbecZávislosti, injekce a vůbec
Závislosti, injekce a vůbecDavid Grudl
 
Borek Bernard: TypeScript - příčetný jazyk pro web
Borek Bernard: TypeScript - příčetný jazyk pro webBorek Bernard: TypeScript - příčetný jazyk pro web
Borek Bernard: TypeScript - příčetný jazyk pro webDevelcz
 
Petr Nikolas Prokop - Symfony framework (0. sraz přátel Symfony v Hradci Král...
Petr Nikolas Prokop - Symfony framework (0. sraz přátel Symfony v Hradci Král...Petr Nikolas Prokop - Symfony framework (0. sraz přátel Symfony v Hradci Král...
Petr Nikolas Prokop - Symfony framework (0. sraz přátel Symfony v Hradci Král...Péhápkaři
 
Czjug Zari 2008
Czjug Zari 2008Czjug Zari 2008
Czjug Zari 2008RENESTEIN
 
atoto.cz - jak na snadnou integraci Codeception
atoto.cz - jak na snadnou integraci Codeceptionatoto.cz - jak na snadnou integraci Codeception
atoto.cz - jak na snadnou integraci Codeceptionatotocz
 
Moderni trendy ve_vyvoji_aplikaci
Moderni trendy ve_vyvoji_aplikaciModerni trendy ve_vyvoji_aplikaci
Moderni trendy ve_vyvoji_aplikaciRENESTEIN
 
Obhajoba absolventské práce
Obhajoba absolventské práceObhajoba absolventské práce
Obhajoba absolventské práceOndřej Brejla
 
WP Frameworky - WordCamp Praha 2018
WP Frameworky - WordCamp Praha 2018WP Frameworky - WordCamp Praha 2018
WP Frameworky - WordCamp Praha 2018Brilo Team
 
Vývojářské Nástroje a Techniky
Vývojářské Nástroje a TechnikyVývojářské Nástroje a Techniky
Vývojářské Nástroje a TechnikyMartin Maly
 
Rust jako náhrada C pro vývoj PHP extensions?
Rust jako náhrada C pro vývoj PHP extensions?Rust jako náhrada C pro vývoj PHP extensions?
Rust jako náhrada C pro vývoj PHP extensions?WebScience1
 

Semelhante a Nette: jak rozbít atom? (20)

Entity Framework: Optimalizace a záludnosti
Entity Framework: Optimalizace a záludnostiEntity Framework: Optimalizace a záludnosti
Entity Framework: Optimalizace a záludnosti
 
Strasti a slasti vývoje wp7 aplikací
Strasti a slasti vývoje wp7 aplikacíStrasti a slasti vývoje wp7 aplikací
Strasti a slasti vývoje wp7 aplikací
 
node.js: zápisky z fronty (Battle guide to node.js)
node.js: zápisky z fronty (Battle guide to node.js)node.js: zápisky z fronty (Battle guide to node.js)
node.js: zápisky z fronty (Battle guide to node.js)
 
Just KISS Nette
Just KISS NetteJust KISS Nette
Just KISS Nette
 
Optimalizace Symfony na devu
 Optimalizace Symfony na devu Optimalizace Symfony na devu
Optimalizace Symfony na devu
 
Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)
Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)
Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)
 
Závislosti, injekce a vůbec
Závislosti, injekce a vůbecZávislosti, injekce a vůbec
Závislosti, injekce a vůbec
 
Borek Bernard: TypeScript - příčetný jazyk pro web
Borek Bernard: TypeScript - příčetný jazyk pro webBorek Bernard: TypeScript - příčetný jazyk pro web
Borek Bernard: TypeScript - příčetný jazyk pro web
 
Petr Nikolas Prokop - Symfony framework (0. sraz přátel Symfony v Hradci Král...
Petr Nikolas Prokop - Symfony framework (0. sraz přátel Symfony v Hradci Král...Petr Nikolas Prokop - Symfony framework (0. sraz přátel Symfony v Hradci Král...
Petr Nikolas Prokop - Symfony framework (0. sraz přátel Symfony v Hradci Král...
 
Czjug Zari 2008
Czjug Zari 2008Czjug Zari 2008
Czjug Zari 2008
 
atoto.cz - jak na snadnou integraci Codeception
atoto.cz - jak na snadnou integraci Codeceptionatoto.cz - jak na snadnou integraci Codeception
atoto.cz - jak na snadnou integraci Codeception
 
Moderni trendy ve_vyvoji_aplikaci
Moderni trendy ve_vyvoji_aplikaciModerni trendy ve_vyvoji_aplikaci
Moderni trendy ve_vyvoji_aplikaci
 
Obhajoba absolventské práce
Obhajoba absolventské práceObhajoba absolventské práce
Obhajoba absolventské práce
 
Nette Tester / Posobota
Nette Tester / PosobotaNette Tester / Posobota
Nette Tester / Posobota
 
Mojo SP Obhajoba
Mojo SP ObhajobaMojo SP Obhajoba
Mojo SP Obhajoba
 
WP Frameworky - WordCamp Praha 2018
WP Frameworky - WordCamp Praha 2018WP Frameworky - WordCamp Praha 2018
WP Frameworky - WordCamp Praha 2018
 
Vývojářské Nástroje a Techniky
Vývojářské Nástroje a TechnikyVývojářské Nástroje a Techniky
Vývojářské Nástroje a Techniky
 
Rust jako náhrada C pro vývoj PHP extensions?
Rust jako náhrada C pro vývoj PHP extensions?Rust jako náhrada C pro vývoj PHP extensions?
Rust jako náhrada C pro vývoj PHP extensions?
 
TNPW2-2013-05
TNPW2-2013-05TNPW2-2013-05
TNPW2-2013-05
 
TNPW2-2012-05
TNPW2-2012-05TNPW2-2012-05
TNPW2-2012-05
 

Mais de David Grudl

TRACY: AN ADDICTIVE TOOL TO EASE DEBUGGING
TRACY: AN ADDICTIVE TOOL TO EASE DEBUGGINGTRACY: AN ADDICTIVE TOOL TO EASE DEBUGGING
TRACY: AN ADDICTIVE TOOL TO EASE DEBUGGINGDavid Grudl
 
Poslední Sobota - Formuláře v Nette 2.1
Poslední Sobota - Formuláře v Nette 2.1Poslední Sobota - Formuláře v Nette 2.1
Poslední Sobota - Formuláře v Nette 2.1David Grudl
 
jQuery: full frontal
jQuery: full frontaljQuery: full frontal
jQuery: full frontalDavid Grudl
 
Soft(ware) skills (konference Devel.cz, 2013)
Soft(ware) skills (konference Devel.cz, 2013)Soft(ware) skills (konference Devel.cz, 2013)
Soft(ware) skills (konference Devel.cz, 2013)David Grudl
 
10.000 followerů na Twitteru snadno a šupem
10.000 followerů na Twitteru snadno a šupem10.000 followerů na Twitteru snadno a šupem
10.000 followerů na Twitteru snadno a šupemDavid Grudl
 
„Bude upřesněno“ na Barcamp Brno 2011
„Bude upřesněno“ na Barcamp Brno 2011„Bude upřesněno“ na Barcamp Brno 2011
„Bude upřesněno“ na Barcamp Brno 2011David Grudl
 
WebExpo 2011: Novinky z konference BUILD
WebExpo 2011: Novinky z konference BUILDWebExpo 2011: Novinky z konference BUILD
WebExpo 2011: Novinky z konference BUILDDavid Grudl
 
Technika vs. lidstvo 1:0
Technika vs. lidstvo 1:0Technika vs. lidstvo 1:0
Technika vs. lidstvo 1:0David Grudl
 
Nette Framework 2 at WebExpo 2010
Nette Framework 2 at WebExpo 2010Nette Framework 2 at WebExpo 2010
Nette Framework 2 at WebExpo 2010David Grudl
 

Mais de David Grudl (9)

TRACY: AN ADDICTIVE TOOL TO EASE DEBUGGING
TRACY: AN ADDICTIVE TOOL TO EASE DEBUGGINGTRACY: AN ADDICTIVE TOOL TO EASE DEBUGGING
TRACY: AN ADDICTIVE TOOL TO EASE DEBUGGING
 
Poslední Sobota - Formuláře v Nette 2.1
Poslední Sobota - Formuláře v Nette 2.1Poslední Sobota - Formuláře v Nette 2.1
Poslední Sobota - Formuláře v Nette 2.1
 
jQuery: full frontal
jQuery: full frontaljQuery: full frontal
jQuery: full frontal
 
Soft(ware) skills (konference Devel.cz, 2013)
Soft(ware) skills (konference Devel.cz, 2013)Soft(ware) skills (konference Devel.cz, 2013)
Soft(ware) skills (konference Devel.cz, 2013)
 
10.000 followerů na Twitteru snadno a šupem
10.000 followerů na Twitteru snadno a šupem10.000 followerů na Twitteru snadno a šupem
10.000 followerů na Twitteru snadno a šupem
 
„Bude upřesněno“ na Barcamp Brno 2011
„Bude upřesněno“ na Barcamp Brno 2011„Bude upřesněno“ na Barcamp Brno 2011
„Bude upřesněno“ na Barcamp Brno 2011
 
WebExpo 2011: Novinky z konference BUILD
WebExpo 2011: Novinky z konference BUILDWebExpo 2011: Novinky z konference BUILD
WebExpo 2011: Novinky z konference BUILD
 
Technika vs. lidstvo 1:0
Technika vs. lidstvo 1:0Technika vs. lidstvo 1:0
Technika vs. lidstvo 1:0
 
Nette Framework 2 at WebExpo 2010
Nette Framework 2 at WebExpo 2010Nette Framework 2 at WebExpo 2010
Nette Framework 2 at WebExpo 2010
 

Nette: jak rozbít atom?