Nette Framework Roadmap
Naší hlavní hodnotou je použitelnost. Proto tvoříme framework, s nímž je nejen snadné, ale i zábavné pracovat. Který dává programátorovi srozumitelnou a úspornou syntaxi, vychází mu vstříc při programování a debugování, nechává ho soustředit se na kreativní stránku vývoje a nepřidělává mu vrásky. Lpíme na bezpečnosti a usilujeme o nejlépe zabezpečený webový framework.
Verze 2.0
Refactoring
- minimalizace použití boolean parametrů u metod
- nahrazování statických členů tříd za nestatické (s výjimkou statických funkcí)
- sjednocení chování metod render()
- zvážit podporu pro aliasy tříd
Neon
- jazyk pro zápis konfigurace a phpDoc komentářů
Application
- předdefinované presentery Error,
Simplea Crud/Resource - odesílání HTTP hlaviček skrze objekt response
- kešování odkazů (přinese zrychlení až o 80%)
- Route: podpora pro pole v parametrech
- Route: lepší podpora pro vícejazyčnost
- skript
nette.jss podporou JavaScriptových rozšíření (např. atributdata-nette-confirmapod.) - anotace pro action/render metody (zabezpečení, AJAX) s možností
testování v šabloně (
n:if-allowed) - protection token pro odkazy
- zvážit přejmenování handleXxx() na actionXxx() u komponent
Cache
- implementace triggerů pro lepší řízení expirace položek
Debug
- zobrazení přihlášeného uživatele v DebugBar
- odesílání extra emailů pro každý typ chyby
Šablony
- továrna pro standardně nakonfigurované šablony
- StringTemplate
- přehodnocení názvosloví a implementace filtrů/helperů v šablonách
- finalizace podpory snippetů
Bugfix
- zjednodušit odesílání AppForm přes HTTPS
- vyřešit komplikace se store & restoreRequest & flashMessage
Verze 2.1
- nástroje podporující testování aplikací
- testy přímo v sandboxu
- generátor pro administrační rozhraní
- podpora pro vícenásobné renderování komponent
- nativní podpora pro hash # navigation a historii
- automatizace podpory pro AJAX
- zvážení podpory REST
- vylepšení podpory pro CLI
- robustnější podpora pro moduly via IModule
- moduly s vlastním error-presenterem
- zvážení zpracování E_WARNING jako výjimek
- odstranění parametru
_fid - řešení pro přetečení velikosti uploadovaného souboru
- podpora XML v Latte
- přepsání Nette\Security\Permission
- dědičnost anotací (fórum) a jejich kontrola (forum)
- manuální správa signálů
- zvážit „anonymní“ identitu třídy User
Application
- CrudRoute pro snadné provázání s modelem
- nastínění cesty, jak nahradit u presenterů dědičnost za kompozici
- předávání vlastních šablony komponentám
Forms
- rozdělení formulářových prvků na fields (logika) a samostatné vykreslovače
- sjednocená validace pro formuláře a model
- prvky addDynamic, addEmail, multi checkbox
- dokončení netteForms.js (podpora pro jQuery a vlastní validátory)
- nová a obecnější implementace toggle()
- serverová validace přes AJAX
- podpora pro in-place editace
- podpora „oživovací“ makra
<input n:name="email" ...> - změna pojetí groups
Dokončeno
Application
vylepšená adresářová strukturaUser v proměnné$template->uservýchozí šablony pro chybové kódy 4×x, 403, 404, 405, 410 and 500přenášení persistentních parametrů do error-presenteruRoute: podpora pro výchozí hodnotynew Route('<presenter=Homepage><action=default>')Route: podpora pro zkratkuPresenter:action(forum)změna rozhraníIRouter::constructUrl(), druhý parameter jeNette\Web\Uri.korekce významu proměnných$baseUria$basePathv šabloně.podpora pro rychlé prototypování via$router[] = new Route('login', function() {...})
Šablony
odstranění zavináčů ze šablonpropojení šablon s Nette\Debugsjednocení syntaxe všech makerrozšíření syntaxe o zápis podmínek{=$var ? item}polí{=[a, b, c]|join:' '}komentářu{var $prom = 123 /*, $name = ahoj*/}a expanze pole{link default $id, (expand) $args, lang => cs}rozšíření syntaxe makra{var $prom = 123, $name = ahoj}nová makra{first}, {last} a {sep}usnadňující iterace a{l} a {r}pro zápis levé nebo pravé složené závorkyvylepšení makra{cache}(fórum)nová atributová makran:classan:hrefpřípona.lattepro soubory se šablonamiautomatická kontrola křížení a neuzavírání makerrefactoring LatteMacros do více třídnový způsob přidávání Latte makerfiltry z TemplateFilters budou nahrazeny filterm Latte
Debug
ladící nástroj Debug Baršablona pro chybovou hlášku v produkčním prostředíu všech chyb se loguje URLmetodaDebug::log($message [, $priority])podporaNette\Debug::$scream = TRUEproklikávací jména souborů v „bluescreen“ s možností otevření v editoru (fórum)FirePHP nahrazen za FireLoggerkonfigurování pomocí statických proměnnýchDebug::$emailaDebug::$logDirectorydetekce vývojářského/produkčního prostředí funguje s proxy serveryskrývání „bluescreen“ přes ESC
Forms
InstantClientScript nahrazen za Unobtrusive JavaScript (fórum)přidána podpora pro HTML5přidán validátor Form::IMAGEnová makra pro příjemné vykreslování formulářů a jejich prvků{form} {label} {control}
Caching
ICacheJournala výchozí implementaceFileJournalpodpora libovolných typů jakožto klíčů v cachepřidánNette\Caching\MemoryStorage
Depencency Injection
třídyNette\Application\Application,Nette\CachingaRobotLoaderjsou nezávislé naEnvironmentNette\Web\HttpRequestgenerována továrnouHttpRequestFactoryEnvironment::getVariable()pro nedefinované proměnné vyhodí výjimkuodstranění všech předdefinovaných proměnných prostředíEnvironmentimplementace konfigurovatelných kontejnerůpodpora pro lazy loadingodstranění volání třídy Environment uvnitř frameworkupřepracování správy módů a jejich konfigurace
Další
nová třídaNette\Finder(fórum) aSmtpMailer(fórumNette\String:přidány metodylength(), compare(), toAscii()a bezpečné regulární výrazy viasplit(), match(), matchAll(),replace()aArrayTools::grep()přidána třídaNette\Jsonnové iterátoryCallbackFilterIterator, RecursiveCallbackFilterIterator, MapIteratorpodpora datových atributů vNette\Web\Html(fórum)Image::rotate(...)rotuje přímo aktuální obrázek namísto toho, aby rotovaný vraceloRobotLoaderpodporuje vnetterobots.txtRobotLoaderinteligentněji pracuje s cache a detekuje přesunutí souborůloader.phpdefineje konstantyNETTE, NETTE_VERSION_ID & NETTE_PACKAGE, NETTE_DIRloader.phpresetuje direktivyerror_reporting(na E_ALL + E_STRICT),iconv.internal_encoding, mbstring.internal_encodingna UTF-8dokončen testovací frameworkNette\Testspoužívají asserce a měřící code coveragevytvořen nástrojCode-Checkervytvořen generátor API dokumentace s podporou jmenných prostorůproměnnáNette\Framework::$iAmUsingBadHost = TRUEpro hostingy zakazujícíini_setrozdělení a refactoring některých tříd kvůli čistějšímu designu a lepší testovatelnostirestrukturalizace výjimek a jmenných prostorů (se zachováním kompatibility)minimalizace závislostí a nečitelné magie