Jmenné prostory – Last Call Announcement

- Ondřej Mirtes
- Člen | 1536
Že teď nedokážu pro Nette napsat ani trochu kódu z hlavy a všechno musím hledat mě deptá, ale snad si zvyknu.
BTW: Proč Nette\Utils\Json, ale Nette\StringUtils
(ve složce common) ?

- jansfabik
- Člen | 193
nene, string ani bool rezervované nejsou (viz PHP dokumentace)
to o čem možná mluvíš je přetypovaní ((string) a
(bool))
Editoval jansfabik (14. 4. 2011 22:27)

- Patrik Votoček
- Člen | 2221
Nette string bylo i předtím. Jsem rád že jsem to na nové namespace předělával ručně (bylo to kvalitní první osahání).
Proč je Nette\DI a né Nette\DependencyInjection
když existuje Nette\ComponentModel ?

- David Grudl
- Nette Core | 8285
Změnilo se toho sice hodně, ale z pohledu vývojáře jde vlastně o těchto 10 bodů:
- výjimky, které byly bez NS, mají nyní prostor Nette
- Debug je teď
Nette\Diagnostics\Debugger, ale chci udělat hard alias, např. NDebug - application responses jsou
Nette\Application\Responses, routers vNette\Application\Routersa presenter & control vNette\Application\UI - z AppForm se stal (s těžkým srdcem)
Nette\Application\UI\Form Finder,Json,Neon,PaginatoraHtmljsou vNette\Utils,Toolsje fučArrayToolsjeArrayUtilsaStringjeStringUtilsNette\Mail\MailjeNette\Mail\MessageITranslatorje vNette\Localization- cache storages jsou v
Nette\Caching\Storages - low level: context je v
Nette\DI, komponenty vNette\ComponentModelaNette\Templates→Templating
Na ostatní věci by programátor neměl narazit.
Přes veškerou skepsi a strastiplnost hledání kompromisu si myslím, že to jsou změny k dobrému. Dle mého jsou ty změny intuitivní (jinak bych je takto nedělal) a asi jediné nejisté místo vidím v bodě 5).

- David Grudl
- Nette Core | 8285
Patrik Votoček napsal(a):
Proč je
Nette\DIa néNette\DependencyInjectionkdyž existujeNette\ComponentModel?
Protože to budu třeba školit ;-) (napište
dependencY InjeCtion brrr)

- Patrik Votoček
- Člen | 2221
David Grudl napsal(a):
- z AppForm se stal (s těžkým srdcem)
Nette\Application\UI\Form
:-D
David Grudl napsal(a):
Protože to budu třeba školit ;-) (napište
dependencY InjeCtionbrrr)
Dobrý argument! :-)

- David Grudl
- Nette Core | 8285
Převodník je v distribuci pod názvem
tools\Code-Migration\class-updater.php. Před spuštěním si
soubory zazálohujte a změny ručně zkontrolujte.
Alternativně lze použít soubor aliasů v
tools\Code-Migration\compatibility-aliases.php.

- David Grudl
- Nette Core | 8285
V případě 5.2 by se změny týkaly těchto tříd:
- ArrayTools, ArrayTools → ArrayUtils, StringUtils
- DownloadResponse → FileResponse
- ForwardingResponse → ForwardResponse
- RedirectingResponse → RedirectResponse
- RenderResponse → TextResponse
- MultiRouter → RouteList
- FileUpload → UploadControl
- DummyStorage → DevNullStorage
- Mail → Message (nebezpečí kolize, možná MailMessage)
- Uri, Uri → Url (nebezpečí kolize), UrlScript
- Debug → Debugger (možná Debug bude hard alias i v PHP 5.3)
V 5.2 se v tuto chvíli nemění nic, nechtěl jsem kvůli pár třídám dělat komplikace u něčeho, co s podporou stejně dřív nebo později skončí. Na druhou stranu je fakt, že se tím zbytečně rozevírají nůžky odlišností a těch pár tříd ArrayUtils, StringUtils, responses a RouteList by se i v 5.2 změnit mohli.
Co myslíte?

- David Grudl
- Nette Core | 8285
Poprosil bych všechny, aby otestovali převodní nástroje (viz info) a poslali nějaké resume.
Během tak dvou dnů bych potom napsal oficiální oznámení o nových namespacech.

- Patrik Votoček
- Člen | 2221
Testoval jsem a vše OK dokonce to jde „zneužít“ na uklizení kódu. Ale stále čekám na komentář tady https://github.com/…b2da0b25a6f1#… .
Ad 5.2 verze přešel bych na nové + přidal aliasy pro staré (existence obojího současně – podobně jako ‚compatibility-aliases.php‘)

- David Grudl
- Nette Core | 8285
V 5.2 dělat aliasy nejde.
A služby přejmenování teprve čeká. Zvažuju upustit od pojmenování
podle interfaces a rovnou používat jednodušší aliasy ala
httpRequest apod.

- Pavel Kouřil
- Člen | 128
David Grudl napsal(a):
Poprosil bych všechny, aby otestovali převodní nástroje (viz info) a poslali nějaké resume.
Jednu app převedlo bez problémů, zbytek teprv zkusím (ale protože sou podobné, tak by je to nejspíš taky mělo převést) … jen jsem měl prve problém sehnat minified verzi nette (a nechtělo se mi buldovat si jej sám), ale pak jsem objevil nightly buildy v downloadech :)
Díky moc za nové namespaces a hlavně převodník

- Ondřej Mirtes
- Člen | 1536
kravčo – tohle je strašně náchylné na chyby.
$r = new FileResponse;
dump($r instanceof DownloadResponse); // false!

- kravčo
- Člen | 721
Ondřej Mirtes napsal(a):
kravčo – tohle je strašně náchylné na chyby.
$r = new FileResponse; dump($r instanceof DownloadResponse); // false!
Bol by to nástroj pre ľudí, ktorí nechcú zdrojáky prepisovať a takto môžu takmer bez zásahu používať up-to-date Nette. Toto riziko sa ich určite netýka.
Rovnako to platí aj pre dôvody použitia class_alias() vo
verzii pre PHP 5.3. Myslím, že nik nechce, aby sa v kóde miešali napr.
Nette\Web\HttpRequest a Nette\Http\Request…
jtousek napsal(a):
kravčo: Taky by to asi dělalo problémy s anotacemi.
Aké?

- David Grudl
- Nette Core | 8285
Last Last Call Announcement
Jsou-li nějaké připomínky k poslední verzi, promluvte prosím teď nebo nikdy :-)
(kurňa to je adresářů)

- kravčo
- Člen | 721
:)
Recursor : Nemyslím si že také slovo reálne existuje, Filter filtruje, Mapper
mapuje, ale čo robí Recursor? Naozaj nie je lepšie
RecursiveIterator? (áno, volá sa tak interface a v porovnaní s
RecursiveIteratorIterator by to malo byť niečo o úroveň
nižšie… ale…)
PhpFileStorage : Toto mi len nesedí. Pôvodne som navrhoval
presunúť ho do Nette\Caching\Storages, ale už chápem, že tam
nepatrí. Možno IncludeStorage?
OutputHelper : Kvôli
getCache('Nette.Template.Cache') podľa mňa nepatrí ku
všeobecnému kešovaniu ale naspäť do
Nette\Templating\CachingHelper (alternatívne prepísaný bez
závislosti tam kde je)

- David Grudl
- Nette Core | 8285
Slovo Recursor je nejspíš originál. Jde o iterátor, který z klasického iterátoru dělá rekurzivní iterátor, ačkoliv sám o sobě rekurzivní není. Takový prostředník. Jak to říct… No rekurzor :-))
OutputHelper upravím, aby si život v Nette\Caching zasloužil.

- Ondřej Mirtes
- Člen | 1536
Já bych v názvosloví byl konzervativní. V cizím jazyce si dovolíme úlet, protože pro něj nemáme takový cit. Jakmile to uvidí nějaký rodilý mluvčí, bude se škrábat na hlavě, co to ti Češi zase v angličtině vymýšlejí za slova.

- David Grudl
- Nette Core | 8285
Obával jsem se, jaké to bude ribejznout všech cca 20 větví, co tu mám, a zas tak strašné to nebylo.
Kdyby to trvalo o něco déle, třeba už bych se konečně naučil, co je při ribejzování „their“ a co „mine“ :-) Máte na to nějakou pomůcku?

- jasir
- Člen | 746
Přesně tohle mě taky furt mate :) Beru to takhle – když rebasuju větev „feature“ na „master“, provede se nejprve jakoby checkout „master“ a na ni se aplikují komity z větve „feature“. Protože pro tu chvíli je master checkoutlá, je to „mine“ a to co na ní leze je „their“…
A nebo je to obráceně? :D
Editoval jasir (19. 4. 2011 19:15)

- David Grudl
- Nette Core | 8285
Jen bacha na to, class_alias není 100% spolehlivý. Kdyžtak zahlasujte.

- David Grudl
- Nette Core | 8285
Ondřej Mirtes napsal(a):
BTW: Proč
Nette\Utils\Json, aleNette\StringUtils(ve složce common) ?
Nakonec jsem z toho udělal Nette\Utils\Strings &
Nette\Utils\Arrays (stálo to hodně vnitřního přemáhání) a
dnes jsem zjistil, že to není komitnuté. Tož snad nebude ještě tak zle to
upravit dodatečně.

- David Grudl
- Nette Core | 8285
jasir napsal(a):
A nebo je to obráceně? :D
Už jsem na to přišel: Master je Mine :-)