#1 23. 1. 2010 3:07
- David Grudl
- Administrator

- Registrovaný: 8. 2. 2005
- Příspěvky: 4226
- Web
[2010–01–23] Vyšla stabilní verze 0.9.3
Po dvou měsících je tu verze 0.9.3. Přináší poměrně dost novinek a opravuje chybičky.
- vylepšení jazyka o globální funkci
callback()a Nette\Callback pro čitelnější zápis a volání callbacků - zásadního zrychlení dosáhla třída
RobotLoader - opraven bug přehazující pořadí parametrů v URI
- vylepšený RoutingDebugger zobrazuje více informací
- přidána třída
DateTime53opravující zmršený DateTime v PHP 5.2 (podpora serializace & unix timestamp) - metoda createComponent() může vracet instanci
- sjednoceno chování všech funkcí ve frameworku, kterým se jako parameter
předává čas. Ten může být zadán buď jako objekt DateTime, řetězec ve
formátu
'+ 14 days', jako relativní počet sekund nebo jako UNIX timestamp. - přidána třída Nette\Web\HttpContext
- přidány funkce
String::padLeft()aString::padRight()(obdoba str_pad pro UTF-8) - deprecated:
Uri::setPass()agetPass()nahrazujeUri::setPassword()andgetPassword() - deprecated:
HttpResponse::expire()nahrazujeHttpResponse::setExpiration() - deprecated:
Nette\Object::getClass()(důvodem je příliš obecný název, lze nahradit za$obj->reflection->name) - odstraněny třídy
Nette\Loaders\SimpleLoader,Nette\Config\ConfigAdapterXml,Nette\Forms\RepeaterControl
Formuláře
InstantClientScript: formuláře generují zgruntu nový validační JavaScriptový kód. Ten by měl být lépe přizpůsobitelný (např. pro live validation) a je nezávislý na HTML ID. V této oblasti bude vývoj pokračovat, nicméně nové chování by mělo být stabilní.HttpUploadedFile: příkazmove()řeší problematiku přístupových práv, umí vytvořit adresář a lze jej použít i pro více přesunů.Html: vylepšeno chování metodgetHtml()agetText(), takže objekty Html lze bez problémů používat v labelech apod.- deprecated:
Form::processHttpRequest()bylo přejmenováno naForm::fireEvents()
Debug
- globální funkce
dump()jako (nejen) zkratka proNette\Debug::dump() - Debug::enable() lze předat výčet IP adres
- kvůli šetření místem nyní
Debugnevytváří HTML logy pro opakující se chyby (zvažuju ukládat soubory komprimované) - opraveny nedostatky logování chyb na některých hostinzích
Šablony
isFirst()aisLast()podporuje renderování mřížek- v šablonách lze psát
<?xml ... ?>bez kliček kvůli PHP parseru - Makro
{debugbreak}podporuje XDebug - deprecated:
LatteFilter::invokepotažmoCurlyBracketsFilter::invoke(zpravidla by mělo stačit inicializaci filtru odstranit)
Image
- metoda
resize()se zápornými argumenty zrcadlí obrázek (Image i ImageMagick) - metoda
calculateSize()je nyní statická (BC break!)
Nette\Reflection
Asi nejvýraznější novinkou je nový soubor tříd Nette\Reflection, které sjednocují a rozšiřují možnosti meta-programování. Sem byla přesunuta podpora anotací a zpracování extension method. Řekl bych, že tohle bude příští velká věc, nicméně tuto oblast čeká ještě velký vývoj.
- anotace fungují všude, eAccelerator není překážkou
- syntaxe anotací byla rozšířena
- deprecated:
Nette\Annotations– podpora se přesunula do třídNette\Reflection
Cache a session
- objekty ukládané do session nebo cache lze nyní verzovat pomocí anotace @serializationVersion
FileStoragepro ukládání tagů a priority používá SQLite databázi
Co ve verzi 0.9.3 není?
Ve verzi 0.9.3 nejsou vývojové záležitosti jako tzv. nové snippety,
nezměnila se třída Identity a Presenter používá starou adresářovou
strukturu a má stále aktivní přepínače $oldLayoutMode a
$oldModuleMode. Zmíněné novinky najdete až ve vývojové větvi
1.0-dev.
Kromě uvedených deprecated metod by se žádná nekompatibilní změna objevit neměla, takže upgrade na 0.9.3 je doporučený.
Offline
#2 23. 1. 2010 10:12
- Vyki
- Nette guru

- Místo: Liberec & Plzeň
- Registrovaný: 12. 7. 2009
- Příspěvky: 253
Re: [2010–01–23] Vyšla stabilní verze 0.9.3
David Grudl napsal(a):
FileStoragepro ukládání tagů a priority používá SQLite databázi
Přešel jsem na PHP 5.3, kde je již nativně sqlite3. Bylo by možné přidat podporu i pro sqlite3, když už má být framework pokrokový a plně použitelný na PHP 5.3 serveru?
Editoval Vyki (23. 1. 2010 10:15)
Offline
#3 23. 1. 2010 12:13
- mcmatak
- Člen
- Registrovaný: 17. 7. 2009
- Příspěvky: 167
Re: [2010–01–23] Vyšla stabilní verze 0.9.3
Object::getClass() is deprecated
proč??? jako je mi to jedno můžu všude přepsat get_called_class nahrazený to mám v nějakým IDE asi rychle …
Offline
#4 23. 1. 2010 12:38
- Panda
- Nette guru

- Místo: Děčín 32
- Registrovaný: 4. 7. 2008
- Příspěvky: 463
Re: [2010–01–23] Vyšla stabilní verze 0.9.3
Místo Object::getClass() by se mělo používat
Object::getReflection()->getName(), kam to patří asi víc.
get_called_class() nepoužívej, je až v PHP 5.3 a slouží pro
potřeby Late Static Bindings.
Pomůžeš-li jednomu člověku, pomůžeš tím celému světu.
– Talmud
Offline
#5 23. 1. 2010 13:09
- pekelnik
- Člen

- Místo: Praha
- Registrovaný: 14. 2. 2009
- Příspěvky: 162
Re: [2010–01–23] Vyšla stabilní verze 0.9.3
Především nemůžeš v žádné třídě mít „property“ class.
Offline
#6 23. 1. 2010 14:56
- Honza Marek
- Moderator

- Místo: Kladno
- Registrovaný: 31. 3. 2007
- Příspěvky: 1290
- Web
Re: [2010–01–23] Vyšla stabilní verze 0.9.3
Ano, vyžaduju metodu $object->getClass()!
Offline
#7 23. 1. 2010 15:05
- David Grudl
- Administrator

- Registrovaný: 8. 2. 2005
- Příspěvky: 4226
- Web
Re: [2010–01–23] Vyšla stabilní verze 0.9.3
Problém getClass() je v jejím poměrně obecném názvu, takže pokud zachovat, tak jako getClassName().
Stejný výsledek vrací i getReflection()->getName(), což lze nyní zapsat přes reflection->name, samozřejmě je to o něco pomalejší, ale kupodivu nijak dramaticky.
Sonduju hlavně odezvu :)
Offline
#8 23. 1. 2010 15:17
- Honza Marek
- Moderator

- Místo: Kladno
- Registrovaný: 31. 3. 2007
- Příspěvky: 1290
- Web
Re: [2010–01–23] Vyšla stabilní verze 0.9.3
Ještě nedávno bylo getClass vydáváno za jednu z hlavních killer feature, že to jako dělá z php kulturní jazyk a že getClass je i v jiných jazycích :)
Offline
#9 23. 1. 2010 15:19
- redhead
- Nette guru
- Registrovaný: 2. 5. 2009
- Příspěvky: 749
Re: [2010–01–23] Vyšla stabilní verze 0.9.3
Jsem pro zachování
Offline
#10 23. 1. 2010 17:22
Re: [2010–01–23] Vyšla stabilní verze 0.9.3
Zachovat getClass! – a zápis $foo->class mi připadá srozumitelný a jednoznačný dostatečně! – BTW jiné jazyky to mají také tak! Jako v nejhorším přejmenovat na className, ale rozhodně nechat!
„Kdo bude hlídat hlídače?“ (Nový Nette QuickStart, Dokumentační projekt – Přehled úkolů)
Offline
#11 23. 1. 2010 17:31
- Honza Kuchař
- Moderator

- Místo: Brno
- Registrovaný: 12. 8. 2007
- Příspěvky: 1330
- Web
Re: [2010–01–23] Vyšla stabilní verze 0.9.3
I přes to, že to budu muset přepsat, tak jsem pro přejmenování na
getClassName(). Přijde mi to jednoznačně logičtejší.
//EDIT: překlep
Editoval honzakuchar (23. 1. 2010 17:32)
Offline
#12 23. 1. 2010 18:08
- Jan Tvrdík
- Nette guru

- Místo: Prostějov
- Registrovaný: 13. 4. 2008
- Příspěvky: 629
- Web
Re: [2010–01–23] Vyšla stabilní verze 0.9.3
getClass se mi díky své obecnosti a nelogičnosti nikdy
nelíbilo. getClassName je v tomto směru o hodně lepší.
Nebude mi vadit, když nebude k dispozici ani jedno.
Offline
#13 23. 1. 2010 18:53
- Honza Marek
- Moderator

- Místo: Kladno
- Registrovaný: 31. 3. 2007
- Příspěvky: 1290
- Web
Re: [2010–01–23] Vyšla stabilní verze 0.9.3
Existuje nějaký jazyk, kde třída Object má getodu getClassName?
Offline
#14 23. 1. 2010 19:46
- pekelnik
- Člen

- Místo: Praha
- Registrovaný: 14. 2. 2009
- Příspěvky: 162
Re: [2010–01–23] Vyšla stabilní verze 0.9.3
Jan Tvrdík napsal(a):
getClassse mi díky své obecnosti a nelogičnosti nikdy nelíbilo.getClassNameje v tomto směru o hodně lepší. Nebude mi vadit, když nebude k dispozici ani jedno.
+1
Hlavní je, že je tato funkčnost plně dostupná jako $obj->reflection->name;
Editoval pekelnik (23. 1. 2010 19:48)
Offline
#15 23. 1. 2010 19:50
- Proki
- Člen
- Místo: Pardubice
- Registrovaný: 20. 2. 2009
- Příspěvky: 40
Re: [2010–01–23] Vyšla stabilní verze 0.9.3
Jsem pro jednoznačné zrušení… Nevím jak v ostatních jazycích ale
například v .NET Frameworku se ke jménu třídy dostává také přes reflexi
jako obj.getType().Name;
EDIT: tak pro zajímavost jsem se podíval na to, jak je to dělané
v Javě. Tam se k názvu třídy dostaneme
přes obj.getClass().getName();
jak je tedy zřejmé, tak v moderních objektových jazycích neposkytuje název třídy přímo instance objektu, ale získává se spolu s dalšími informacemi reflexí…
Editoval Proki (23. 1. 2010 20:03)
Offline
#16 23. 1. 2010 20:34
- Honza Marek
- Moderator

- Místo: Kladno
- Registrovaný: 31. 3. 2007
- Příspěvky: 1290
- Web
Re: [2010–01–23] Vyšla stabilní verze 0.9.3
pekelnik: Hlavně je ta funkčnost dostupná přes get_class($object). Holt si budu muset projít zdrojáky, kde mám všude $object->getClass() a přepsat to :-/
Offline
#17 23. 1. 2010 21:22
- Honza Kuchař
- Moderator

- Místo: Brno
- Registrovaný: 12. 8. 2007
- Příspěvky: 1330
- Web
Re: [2010–01–23] Vyšla stabilní verze 0.9.3
Pokud nebudu myslet na ty co používají třídu Object bez
zbytku Nette, tak mi zrušení této metody v zásadě taky nijak nevadí.
Offline
#18 23. 1. 2010 22:22
- pekelnik
- Člen

- Místo: Praha
- Registrovaný: 14. 2. 2009
- Příspěvky: 162
Re: [2010–01–23] Vyšla stabilní verze 0.9.3
Honza Marek napsal(a):
pekelnik: Hlavně je ta funkčnost dostupná přes get_class($object). Holt si budu muset projít zdrojáky, kde mám všude $object->getClass() a přepsat to :-/
Ber to tak že u verze 0.9.3 se s tím musí počítat ;)
A jsou to všechno změny k lepšímu a čistšímu kódu.
Offline
#19 24. 1. 2010 8:14
Re: [2010–01–23] Vyšla stabilní verze 0.9.3
Zaskočilo mě deprecated LatteFilter::invoke(), ale jinak byl přechod bezproblémový.
Offline
#20 24. 1. 2010 21:14
Re: [2010–01–23] Vyšla stabilní verze 0.9.3
Zdravím,
mohu se zeptat, proč došlo k odstranění třídy SimpleLoader? Používal jsem ji neboť RobotLoader mi příliš nevyhovuje. Navíc dodržuju strukturu jmenných prostor a tříd stejnou jako strukturu adresářů a souborů s třídami takže použití SimpleLoaderu bylo přirozené.
Offline
#21 24. 1. 2010 23:28
Re: [2010–01–23] Vyšla stabilní verze 0.9.3
jtousek: vždy můžeš použít třídu ze starší revize a hodit si ji do svých knihoven :)
Editoval HosipLan (24. 1. 2010 23:35)
Nette Jabber Room – nette@conf.netlab.cz , všichni jste vítáni
Offline
#22 25. 1. 2010 0:10
#23 25. 1. 2010 1:02
- Honza Marek
- Moderator

- Místo: Kladno
- Registrovaný: 31. 3. 2007
- Příspěvky: 1290
- Web
Re: [2010–01–23] Vyšla stabilní verze 0.9.3
jtousek:
SimpleLoader byla třída, ve které byl ručně napsaný seznam všech tříd
frameworku a nešlo s ním načítat nic jiného. Takže jsi používal
SimpleLoader + ruční require na vlastní třídy? Presentery se myslim
načítají jinak, na to by to nemělo vliv. Pokud se ti vlastní třídy
načítaly samy, zřejmě jsi používal RobotLoader aniž bys
o tom věděl.
HopsiLan:
Zrovna tahle třída asi použít ze starší verze frameworku nepůjde. Stačí
přidání nebo přesun třídy a framework se rozbije.
Offline
#24 25. 1. 2010 1:19
- kravčo
- Moderator

- Místo: Bratislava
- Registrovaný: 15. 6. 2008
- Příspěvky: 565
Re: [2010–01–23] Vyšla stabilní verze 0.9.3
Honza Marek napsal(a):
jtousek:
SimpleLoader byla třída, ve které byl ručně napsaný seznam všech tříd frameworku a nešlo s ním načítat nic jiného. Takže jsi používal SimpleLoader + ruční require na vlastní třídy? Presentery se myslim načítají jinak, na to by to nemělo vliv. Pokud se ti vlastní třídy načítaly samy, zřejmě jsi používal RobotLoader aniž bys o tom věděl.HopsiLan:
Zrovna tahle třída asi použít ze starší verze frameworku nepůjde. Stačí přidání nebo přesun třídy a framework se rozbije.
To, o čom píšeš je NetteLoader. SimpleLoader
slúži(l) na načítanie tried podľa mennej konvencie trieda → súbor,
podobne ako tomu je v Zend Frameworku. Čiže triedu
\My\SuperDuper\MegaClass by hľadal v súbore
My/SuperDuper/MegaClass.php.
Offline
#25 25. 1. 2010 1:24
Téma zavřeno
- Úvodní stránka
- » Changelog
- » [2010–01–23] Vyšla stabilní verze 0.9.3


