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 | 8221
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\Routers
a presenter & control vNette\Application\UI
- z AppForm se stal (s těžkým srdcem)
Nette\Application\UI\Form
Finder
,Json
,Neon
,Paginator
aHtml
jsou vNette\Utils
,Tools
je fučArrayTools
jeArrayUtils
aString
jeStringUtils
Nette\Mail\Mail
jeNette\Mail\Message
ITranslator
je vNette\Localization
- cache storages jsou v
Nette\Caching\Storages
- low level: context je v
Nette\DI
, komponenty vNette\ComponentModel
aNette\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 | 8221
Patrik Votoček napsal(a):
Proč je
Nette\DI
a néNette\DependencyInjection
když 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 InjeCtion
brrr)
Dobrý argument! :-)
- David Grudl
- Nette Core | 8221
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 | 8221
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 | 8221
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 | 8221
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 | 8221
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 | 8221
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 | 8221
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 | 8221
Jen bacha na to, class_alias není 100% spolehlivý. Kdyžtak zahlasujte.
- David Grudl
- Nette Core | 8221
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 | 8221
jasir napsal(a):
A nebo je to obráceně? :D
Už jsem na to přišel: Master je Mine :-)