nette: jak rozbít atom?

Post on 18-Dec-2014

3.560 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

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.

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.

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 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.

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.

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?

Rozdělení Nette bylo proveditelné teprve ve chvíli, kdy se v PHP (konečně) objevil široce respektovaný balíčkovací nástroj.

COMP-OSER

Stal se jím Composer.Asi nejdůležitější počin posledních let. Seznamte se s ním!

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.

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.

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

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é.

Děkuji za pozornost.@geekovo – @davidgrudl – @netteframework – #nettefw

top related