Jak na jmenné prostory? | Je potřeba NetteLoader?
- David Grudl
- Nette Core | 8227
Omlouvám se, že spojuju dvě témata dohromady, ale souvisí spolu velmi úzce.
Pokud jste už programovali v PHP 5.3 s využitím jmenných prostorů, asi jste přišli na to, že je to děsněj opruz. Nakonec úkolem jmenných prostorů je vyřešit možné konflikty názvů tříd, nikoliv zpříjemnit programování. Člověk si dokonce pohrává s myšlenkou, jestli není lepší pod PHP 5.3 používat některou verzi frameworku určenou pro PHP 5.2.
Jenže v tom vidím úskalí:
- existence více verzí je problém: pro kterou psát dokumentaci? pro kterou psát doplňky?
- je tedy třeba směřovat k jedné verzi
- ale které? nejpoužívanější verze (neprefixová pro 5.2) je vlastně nejhorší, protože jako jediná nemá jmenný prostor (i prefixovanou verzi lze považovat za verzi se „jmenným prostorem“) a může způsobovat konflikty.
Napadl mě trik, který jsem ukazoval na Poslední sobotě a který by umožnil, aby se pod PHP 5.3 dalo k třídám přistupovat jakýmkoliv způsobem:
$user = new Nette\Web\User;
echo $user instanceof User; // vrací true
echo $user instanceof NUser; // vrací true
echo $user instanceof Nette\Web\User; // vrací true
Tímto trikem by šla například vytvořit konvence, že pod PHP 5.3 lze
každou třídu adresovat buď plným jmenným prostorem
(Nette\Web\User
) nebo zkráceným (NUser
). Pod PHP
5.2 by se samozřejmě používal jen zkrácený zápis. Vyřešilo by to
otázku, jak psát pluginy. Naopak vznikla by nejasnost v tom, který přístup
je preferovaný a jak psát dokumentaci. Především však by se upozadila
v současnosti nejpoužívanější verze – neprefixovaná pro 5.2. (což
může být pro mnohé těžko přijatelné, ale řekněme si na rovinu, takhle
verze je časovaná bomba a její existenci dnes považuju za chybu).
Nicméně, aby trik s aliasováním tříd
Nette\Web\User === NUser
fungoval na 100%, bylo by potřeba už
při inicializaci načíst všechny třídy frameworku, tj. zrušit NetteLoader.
Což by nemusel být nijak převratný krok: obyčejný příklad CD-collection
u přihlašovacího okna načítá 70 % všech tříd a minifikovaná verze
takto funguje odjakživa.
Jak by mohl framework vypadat bez NetteLoaderu můžete vyzkoušet zde https://github.com/…-NetteLoader
Tohle téma považuju za důležité a je třeba vymyslet, jakou cestou se ubírat. PHP 5.2 bude nutné podporovat alespoň ještě rok a existence dvou verzí (prefix a neprefix) je reálný problém. A přestávám si být jist tím, že plné jmenné prostory v PHP 5.3 jsou tou nejlepší budoucností, která všechno vyřeší. Ale možná jsem jen rozmlsaný a zvyknu si na ně :-)
- Jan Tvrdík
- Nette guru | 2595
Osobně mi jako nejlepší řešení připadá tlačit všude PHP 5.3 se jmennými prostory. Dokumentace se již nějakou dobu píše (má psát) primárně pro PHP 5.3 a u doplňků je to v současnosti na rozhodnutí autora, s čímž můžeme dělat akorát to, že doporučíme psát všechny doplňky pro PHP 5.3.
Vzhledem k tomu, že v produkčním prostředí používám vždy
minimalizovanou verzi, tak se mě zrušení NetteLoaderu moc nedotkne. Ten trik
představený na PS bych nechal ve výchozím stavu vypnutý a zapínal by se
manuálně (třeba define('NETTE_MAGIC', TRUE)
:).
Ohledně otravného psaní jmenných prostorů – pořád čekám na IDE, které to bude řešit za mě. Ale ani teď mi to nepřijde moc psaní navíc.
- jtousek
- Člen | 951
Pokud jde o podporu PHP 5.2, myslím, že finální verze 1.0 dříve jak za rok zřejmě nebude. PHP 5.3 přináší pár zajímavých novinek a udržování zpětné kompatibility mi v případě Nette 1.0 připadá spíše na škodu, protože nás o tyto novinky (hlavně late static binding a __callStatic) částečně ochuzuje. Proto si myslím, že pro PHP 5.2 by měla být určena hlavně verze 9.x a Nette 1.0 by mělo vyžadovat PHP 5.3, protože až bude konečně stable, PHP 5.3 už bude rozšířené.
Jmenné prostory v 9.x nechat jak jsou, ve verzi 1.0 pouze verze s nimi.
- mlady
- Člen | 24
jtousek napsal(a):
Pokud jde o podporu PHP 5.2, myslím, že finální verze 1.0 dříve jak za rok zřejmě nebude. PHP 5.3 přináší pár zajímavých novinek a udržování zpětné kompatibility mi v případě Nette 1.0 připadá spíše na škodu, protože nás o tyto novinky (hlavně late static binding a __callStatic) částečně ochuzuje. Proto si myslím, že pro PHP 5.2 by měla být určena hlavně verze 9.x a Nette 1.0 by mělo vyžadovat PHP 5.3, protože až bude konečně stable, PHP 5.3 už bude rozšířené.
Jmenné prostory v 9.x nechat jak jsou, ve verzi 1.0 pouze verze s nimi.
Je to síce otázka skôr na Nette Foundation, ale osobne očakávam príchod 1.0 skôr ako o rok. Každopádne si nemyslím, že PHP 5.3 bude v tej dobe už dostatočne rozšírené. Komunikoval som o PHP 5.3 s hostmonster.com a povedali mi, že by to radi nahodili ale cPanel má s PHP 5.3 problémy. Tým pádom sa to bude asi týkať všetkých hosterov, ktorí bežia na cPaneli.
- Jan Tvrdík
- Nette guru | 2595
Nette 1.0 by určitě mělo být funkční na verzi 5.2 alespoň stejně dobře, jak funguje nyní. Už dnes obsahuje Nette některé funkce, které v PHP 5.2 nebudou fungovat, ale s tím se zkrátka nedá nic dělat.
- Majkl578
- Moderator | 1364
Stejně jako Honza jsem pro jmenné prostory.
Nejednotnost doplňků se mi nelíbí, ale co nadělám. Chtělo by to napsat
doporučení/žádost psát nějakou stejnou formou (jmenný prostor, třeba
Nette\Extras apod.).
Používám verzi se jmennými prostory a k tomu momentálně Doctrine 2 také
se jmennými prostory. A celkem mi (zatím) jmenné prostory vyhovují.
- Ondřej Mirtes
- Člen | 1536
Na práci se jmennými prostory se dá po několika týdnech zvyknout a už to není ani takový opruz, takže bych nějakou šílenou magii nedělal.
A jsem i pro to vyžadovat v 1.0 verzi PHP 5.3 (tzn. umazat všechny fixy pro zpětnou kompatibilitu) a pro PHP 5.2 nechat větev 0.9.x.
Dělá to tak i Zend Framework 2 a Doctrine 2, takže bych se toho fakt nebál. Spousta seriózních webhosterů (namátkou Blueboard, Tojeono, Savana) PHP 5.3 už provozuje.
- Patrik Votoček
- Člen | 2221
Sice jsem se nakonec na Poslední Sobotu nedostal (kvůli závodům) a tak neznám konkrétní detaily implementace téhle „vychytávky“ ale i tak mě to připadá jako šílený WTF faktor. A rozhodně jsem proti.
Naopak souhlasím s tím aby se u 1.0 úplně odstřihla zpětná kompatibilita a byla pouze pro PHP 5.3. PHP 5.3 je tu a chtě nechtě ho budou brzy nebo později začít používat všichni. Vždyť i velcí hráči na „trhu“ jako Zend, Doctrine, Symfony a další přecházejí na jmenné prostory.
- Honza Marek
- Člen | 1664
Ondřej Mirtes napsal(a):
A jsem i pro to vyžadovat v 1.0 verzi PHP 5.3 (tzn. umazat všechny fixy pro zpětnou kompatibilitu) a pro PHP 5.2 nechat větev 0.9.x.
To zní dobře.
- David Grudl
- Nette Core | 8227
Tak nevím… návrhy, aby se odstřihla podpora pro PHP 5.2, jsou dle mého projevem sobectví. Kvůli tomu, že jste jedni z mála, kdo mají na hostingu PHP 5.3, chcete odříznout většinu uživatelů? Proč? Co vám tak na podpoře 5.2 trhá žíly? V čem vás omezuje?
- Ondřej Mirtes
- Člen | 1536
Podpora pro PHP 5.2 je koule na noze. Ve frameworku straší funkce fixNamespace, fixCallback, třída DateTime53. Musíme řešit, jestli daný doplněk je pro PHP 5.2 nebo pro namespaceovanou verzi Nette, nemůžeme uvádět příklady s anonymními funkcemi na fóru a v dokumentaci namísto callbacků…
- redhead
- Člen | 1313
Ale vždyť můžeme používat verzi bez namespace na 5.3 ne?
Používám verzi pro 5.2 úplně v pohodě, nemám s ní problém. Žádné komplikace se stejně pojmenovanými třídami nemám (žádné nepoužívám). Na 5.3 se nechystám. A doufám, že dlouho ještě nebudu muset..
Editoval redhead (7. 6. 2010 20:36)
- Jan Tvrdík
- Nette guru | 2595
Souhlasím s Davidem. Přestože budu jeden z těch, které verzi pro 5.2 brzy opustí, považuji za naprostý nesmysl odstřihnout podporu pro PHP 5.2. Na spoustě hostinzích bude trvat ještě dlouho, než podpora pro PHP 5.3 přijde a ta „koule na noze“ mi nepřijde tak velká, abychom kvůli ní dělali takto radikální a unáhlené kroky.
Jan Tvrdík: NetBeans s psaním docela slušně pomáhá.
Jejich „docela slušně“ je na můj vkus ještě hodně málo.
Ondřej Mirtes napsal(a):
nemůžeme uvádět příklady s anonymními funkcemi na fóru a v dokumentaci namísto callbacků…
Ale můžete a dokonce byste měli.
- Honza Marek
- Člen | 1664
Majkl578 napsal(a):
Chtělo by to napsat doporučení/žádost psát nějakou stejnou formou (jmenný prostor, třeba Nette\Extras apod.).
Já nechápu, proč by měly všechny doplňky sdílet jedno namespace Nette\Extras? Jen hezky ať má každej doplněk svoje namespace.
- David Grudl
- Nette Core | 8227
Ondřej Mirtes napsal(a):
Podpora pro PHP 5.2 je koule na noze. Ve frameworku straší funkce fixNamespace, fixCallback, třída DateTime53. Musíme řešit, jestli daný doplněk je pro PHP 5.2 nebo pro namespaceovanou verzi Nette, nemůžeme uvádět příklady s anonymními funkcemi na fóru a v dokumentaci namísto callbacků…
Když už, je to koule na mé noze… Nedokážu si představit, proč by těch deset hintů pro podporu PHP 5.2 v celém frameworku mohlo někomu vadit.
Svůj názor na podporu PHP 5.2 můžete vyjádřit v dotazníku http://twtpoll.com/f36mxe
Honza Marek napsal(a):
Já nechápu, proč by měly všechny doplňky sdílet jedno namespace Nette\Extras? Jen hezky ať má každej doplněk svoje namespace.
Přesněji řečeno, co není oficiální součástí Nette by vůbec ve jmenném prostoru Nette být nemělo.
- nAS
- Člen | 277
Odstřihnout podporu PHP 5.2 je nesmysl už kvůli hlasování na PS, kde přes 90% lidí hlasovalo že používají verzi pro PHP 5.2 bez prefixů. Když někdo ví, že nebude řešit konflikty, nebo je vyřeší přejmenováním jiných knihoven než Nette, tak bych to nechal na něm a nenutil bych mu nějakou jinou verzi. Samozřejmě něco jiného je psaní doplňků, které by měly být co nejvíce univerzální. Proto navrhuji, aby se doplňky psaly v namespace verzi a udělal bych nějaký veřejný převodník na zbylé 2 verze. Poté by si každý mohl stáhnout tu verzi doplňku která mu bude vyhovovat. Pravděpodobně by to znamenalo, že by se muselo vytvořit pár pravidel jak psát kód, aby šel převést, ale to by neměl být zase takový problém (aspoň to lidi povede k tomu psát doplňky co nejpřehledněji) a pokud s tím někdo bude mít problém, určitě se najde někdo jiný, kdo to bude ochotný doopravit do správného tvaru.
- David Grudl
- Nette Core | 8227
Twtpoll mi anketu zařízlo po 100 hlasech, nicméně i tak lze z výsledků vyčíst, že podpora pro PHP 5.2 je zatím nutností. Navíc předpokládám, že hlasovali spíš „pokrokovější“ programátoři, v reálu bude situace pro 5.3 ještě horší.
- Honza Kuchař
- Člen | 1662
Též chci přejít na ver. s namespace, ale zatím mi projekty fungují na verzi bez nich.
- washo
- Člen | 88
Resim ted problem jestli pouzit prefixovanou verzi pro 5.2 nebo neprefixovanou. David pise ze neprefixovanou verzi povazuje za chybu, ale drtiva vetsina doplnku je pro prefixovanou. Vcera jsem svuj projekt odprefixoval, protoze mi prislo ze se preferuje neprefixovana verze, dneska jsem si vsimnul tohoto vlakna a ctu opak. Kterou verzi mam teda uprednostnit?
- jtousek
- Člen | 951
Prefixovaná verze se používá aby Nette nezabíralo svými třídami tolik obecných slov – tedy hlavní důvod je kompatibilita s jinými frameworky a možnost používat tato obecná slova ve svých vlastních třídách. Většina vývojářů, kteří používají Nette ale používá pouze Nette a raději volí verzi bez prefixů (pokud vím tu prefixovanou volí málokdo). Pokud ti nevadí, že Nette používá pro třídy značně obecná slova zvol spíše neprefixovanou.
Ideální je samozřejmě přechod na PHP 5.3 a jmenné prostory pokud je to možné. ;)
- washo
- Člen | 88
jtousek napsal(a):
Prefixovaná verze se používá aby Nette nezabíralo svými třídami tolik obecných slov – tedy hlavní důvod je kompatibilita s jinými frameworky a možnost používat tato obecná slova ve svých vlastních třídách. Většina vývojářů, kteří používají Nette ale používá pouze Nette a raději volí verzi bez prefixů (pokud vím tu prefixovanou volí málokdo). Pokud ti nevadí, že Nette používá pro třídy značně obecná slova zvol spíše neprefixovanou.
Ideální je samozřejmě přechod na PHP 5.3 a jmenné prostory pokud je to možné. ;)
No to je mi jasne. Me jde hlavne o to, ze prefixovana verze byla nedavno experimentalne odstranena z downloadu a ted zase plati za lepsi = chaos. To me trochu vydesilo. Jde mi o to, kterou verzi Nette Foundation drive sestreli, nebo jestli se treba neuvazuje o nejakem toolu který bude schopen aplikaci prechroustat z namespacovane verze do prefixovane (nebo neprefixovane) … proste, ktera je perspektnivnejsi (pokud nemohu zatim prejit na 5.3).
- jtousek
- Člen | 951
Pokud jde o následující vývoj tak očekávám, že se tak nějak budou udržovat a používat obě dvě verze ve větším či menším měřítku. S tím, že kdo může přejde na 5.3, kde už prefixovaná verze nemá co dělat.
Patřím mezi ty šťastlivce, kteří mají VPS s PHP 5.3 takže tenhle problém naštěstí neřeším. Osobně bych v tvém případě volil neprefixovanou – snadněji si zvykneš na verzi se jmennými prostorami, získáš kompatibilitu s doplňky a pokud bys chtěl aplikaci v budoucnu překopat na jmenné prostory nebude to takový problém (stačí vyměnit verzi Nette a do všech souborů dopsat klauzule use – sice otrava, ale když ti IDE trochu pomůže tak se to dá).
Celkově je to ale spíše věc osobního názoru. Můj je ten použít neprefixovanou, pokud nemáš nějaký zásadní důvod ji nepoužít.
- Majkl578
- Moderator | 1364
David Grudl napsal(a):
Tohle téma považuju za důležité a je třeba vymyslet, jakou cestou se ubírat.
Beta verze Nette 1.0 se blíží a myslím si, že v ní už by o takovýchto věcech mělo být rozhodnuto.
Jak to tedy vypadá?
Osobně si nemyslím, že používání tří konvencí pojmenovávání
v rámci jedné verze frameworku je výhoda, ale na druhou stranu není to
taková koule na noze jako 3 rozdílné verze Nette se vzájemnou
nekompatibilitou doplňků. Každý by si používal co chce a i přes to by
doplňky fungovaly všem.
Pokud by nakonec na podporu všech tří verzí pojmenovávání došlo, naprosto elegantním řešením problému by bylo použití funkce class_alias (bohužel nelze použít už teď – funkce je dostupná od 5.3).
- westrem
- Člen | 398
Preco vsetci uvazuju vylucne iba nad moznostami Namespace a nie Namespace? Podla mna ked sa clovek nad tym zamysli, je jasna volba prefixed verzia pomocou „N“ na zaciatku kazdej triedy. Taketo ujednotene riesenie ako sam David spomina poskytuje v podstate namespace a netreba riesit PHP 5.2 alebo 5.3 (ked odmyslim tych par fixov, ktore David spomina, ze su vo verzii pre 5.2).
Pre mna bola prefixed verzia jasnou volbou a napriek tomu, ze na hostingu by uz malo byt PHP 5.3 podporovane, ostavam na 5.2.
Vie niekto zhrnut nejaku velku nevyhodu prefixed verzie ako takej, alebo aky je dovod, ze okrem prveho Davidovho prispevku ju nikto nespomina?
Osobne tiez pre vsetky „svoje“ triedy mimo Nette pouzivam prefixed syntax, kde prependujem pismenko „P“ a zatial s tym nebol problem.
- Majkl578
- Moderator | 1364
westrem napsal(a):
Vie niekto zhrnut nejaku velku nevyhodu prefixed verzie ako takej, alebo aky je dovod, ze okrem prveho Davidovho prispevku ju nikto nespomina?
Asi to bude znít divně, ale nelíbí se mi to. Nelíbí se mi to vizuálně a nelíbí se mi to, protože si to hraje na jmenné prostory, jimiž to není.
Zajímalo by mě:
– jak bys řešil subnamespaces, Nette\Forms\Form by NFForm,
Doctrine\ORM\Query\AST\Join by bylo DOQAJoin atd.
– proč nevyužívat toho, co se v jiných jazycích používá a je
nativně podporováno
– co ti vadí na podobě jmenných prostorů v PHP
Osobne tiez pre vsetky „svoje“ triedy mimo Nette pouzivam prefixed syntax, kde prependujem pismenko „P“ a zatial s tym nebol problem.
Já zas jmenný prostor, např. App.
Házej po mně třeba kameny, ale prefixování názvu třídy místo použití vlastnosti jazyka mě neláká.
- westrem
- Člen | 398
Asi to bude znít divně, ale nelíbí se mi to. Nelíbí se mi to vizuálně a nelíbí se mi to, protože si to hraje na jmenné prostory, jimiž to není.
Ano hraje si to, plne rozumiem problemu, ze to neriesi namespaces. A neznie to divne, niekomu to proste nemusi vizualne sediet, kazdy mame svoje coding navyky.
jak bys řešil subnamespaces, Nette\Forms\Form by NFForm, Doctrine\ORM\Query\AST\Join by bylo DOQAJoin atd.
Tu je ten problem, ze toto by som neriesil. Proste veskere namespaces od Nette by sa zhrnuli do pociatocneho pismena „N“, tzn ak by som videl NForm, viem, ze je z Nette ale uz neriesim ci je z Nette\Forms alebo Nette\Web alebo pod. Otazka, je toto naozaj nutne rozlisovat?
proč nevyužívat toho, co se v jiných jazycích používá a je nativně podporováno
Pretoze tu sa bavime konkretne o PHP a bohuzial pri PHP je situacia, ze 5.2 to nevie a 5.3 ano a obe verzie su dost zastupene a preto mam pocit, ze vobec David hlada kompromis. V Jave, ktora to ma nativne toto riesit nemusis, proste NS pouzivas, lenze tu kde je vela ludi na to nezvyklych a NS pouzivaju len pokrokovi programatori, ktori na to maju moznosti (hosting) to treba nejak riesit.
co ti vadí na podobě jmenných prostorů v PHP
Apriori nic, aposteriori to co som spomenul vyssie, roznorodost pri verziach, ktore ide hned po sebe, kebyze sa bavime, ze PHP 4 to nevie a 5.x ano tak vlastne sa ani bavit nemusime.
Házej po mně třeba kameny, ale prefixování názvu třídy místo použití vlastnosti jazyka mě neláká.
Nemam proc hadzet kameny nebo hocico jineho, jak vravim, mne vyhovuje prefixed, pretoze s nim mozem ficat na 5.3 aj 5.2 a nie som tak viazany verziou PHP.
- Patrik Votoček
- Člen | 2221
Úplně jsem zapoměl že tohle vlákno existuje. Nicméně abych přispět svou troškou do mlýna.
Existence 3 různých verzí Nette Framworku mě také vadí. Rád bych aby PHP 5.2 konečně shořelo v pekle. Ale to se jen tak nestane. Problém je že PHP je tak rozšířený jazyk a je něm postaveno takové množství aplikací že aktualizace samotného PHP na hostinzích je běh na hodně dlouhou trať. Podívej te se jak dlouho je tu třeba PHP 5.0.0 a i přes to ještě dnes narazíte na aplikace pro PHP 4.x (nejčastěji 4.4.x). Navíc rozdíl mezi PHP 5.2 a 5.3 z pohledu namespace je tak obrovský jako rozdíl v OOP u PHP 4.x a 5.x. I když moc nechápu lidi, kteří stále setrvávají u PHP 5.2. Můžou si přece aktualizovat PHP na 5.3 a provozovat 5.2 aplikace na něm. A nové aplikace už psát lépe a naplno využívat síly PHP 5.3.
Osobně jsem pro zrušení základní verze Nette bez namespace a bez prefixů už u verze 1.0. A o zrušení prefixed verze bych se bavil cca za rok kdyby mohlo být Nette 2.0. (Ostatně by se tím přidalo k Doctrine 2.0, Zend Framework 2.0 a Symfony 2.0).
- Patrik Votoček
- Člen | 2221
Prosím necituj příště předchozí příspěvek. Zbytečně to za*** fórum. (citaci jsem odstranil)
- na1k
- Člen | 288
Tak to já jsem zase proti odříznutí 5.2
Proč zbytečně (ano, zbytečně) zahazovat značnou část uživatelů?
Já jsem pro to, aby verze 1.0 vyšla v prefixované verzi pro
5.2 a namespacované pro 5.3 s tím, že by obě
obsahovaly Davidův trik, a tudíž
NAppForm === \Nette\Application\AppForm
.
Zahození neprefixované verze považuju za nutnost v každém případě.
V 5.3 jsem pro namespace, protože to využívá jazyka a ne umělého
namespacování. Teď se NS možná jeví jako zbytečnost, ale weby budou
stále více „slepované“ a krytí tříd bude stále větší problém.
A pro 5.2 zbývají prefixované třídy. Je to sice taková berlička,
vypadá to divně, ale je to funkční a praktičtější, opět kvůli
nekolidujícím třídám.
Jen jsem asi nepochopil, jak by taková rovnost názvů prefix/NS fungovala u doplňků. Řekněme, že mám doplněk \Extras\Forms\DatePicker. Přeložilo by jej Nette na něco jako EDatePicker? A co případná kolize jména s \Extras\DatePicker? … Pokud by toto ale bylo nějak ošetřené, tak to vidím jako ideální řešení, protože by doplňky byly „automaticky“ v obou verzích (až na specifické funkce, samozřejmě) a nebylo by třeba řešit NS.
Editoval na1k (9. 9. 2010 14:03)
- na1k
- Člen | 288
redhead, jasně, ty v tom pořádek máš, já taky, byť bych díky NS nemusel. Zatím je ale Nette spíš komornější projekt, ale se stabilní 1.0 bude určitě snaha dostat jej za hranice republiky, ideálně i Evropy. A s tím přichází i to, že lidí co v tom mají jasno, bude stále míň. K frameworku se dostanou programátorští BFU, kteří budou chtít sekat weby jako Baťa cvičky, jak je jim slíbeno, a ne řešit jestli je komponenta pro jejich verzi php a ještě pro jejich verzi Nette. Buď se na to vykašlou úplně anebo budou po autorech škemrat „porty“ do jiných verzí Nette.
Je to otázka praktičnosti a udržovat tři verze Nette, byť pomocí generátorů, je záhul. Není to jenom o tom dát na web linky ke stažení, ale pořád to musíš řešit – ve fóru, v issues, doplňcích,…
redhead i Jod nejste žádní začátečníci. To je pro vás opravdu nemožné přejít jen z neprefixované verze na prefixovanou? Nemůžu si pomoct, ale vidím to na pár průchodů „Search and replace“ a nanejvýš přegenerování dokumentace. Je tam snad ještě nějaký jiný opravdu závažný problém, který by vyvážil pohodlnost a přenositelnost doplňků?
- redhead
- Člen | 1313
Pokud se jedná o komponenty, tak tam to chápu, stejně tak u zahraničních BFU. Ale zas nevím, proč ji odstřihnout násilím. Klidně ať zmizí z downloadů nebo tam připsat varování. Komponenty mi zrovna nevadí, ty si klidně přepíšu (nebo si napíšu vlastní; prakticky ani nevím jestli nějaké 3rd-party komponenty používám)
- BigCharlie
- Člen | 283
I já jsem pro zachování verzí pro PHP 5.2. Argumenty typu líbí nelíbí sice chápu, ale důležitější mi připadá výsledek ankety, kde se ve všech otázkách cca 50% odpovědí zastává verzí pro PHP 5.2 (samozřejmě nejdůležitější je pro mě, že to využívám :-))
vidím to na pár průchodů „Search and replace“ a nanejvýš přegenerování dokumentace. Je tam snad
ještě nějaký jiný opravdu závažný problém, který by vyvážil pohodlnost a přenositelnost doplňků?
v komerční sféře třeba otázku, kdo to zaplatí když priority jsou jinde a času není nazbyt. Nebo současný běh nových projektů a velkého projektu, který pochází z doby PHP 4.xx, funguje na 5.2 a stále se hodně využívá, ovšem s PHP 5.3 má problémy. Všechno není černobílé.
A to bych na PHP 5.3 přešel velmi rád…
- na1k
- Člen | 288
BigCharlie, bavil jsem se o přechodu PHP5.2 bez prefixů → PHP5.2 s prefixy
Možná je tohle téma trochu zamotané, ale pochopil jsem ho jako debatu nad tím, které „verze“ Nette do budoucna zachovat – nonprefix, prefix, namespace. To že se bude podporovat jak 5.2, tak 5.3 beru jako hotovou věc. (A taky i proto je třeba řešit například „přenositelnost“ doplňků.)
Editoval na1k (9. 9. 2010 17:19)
- Majkl578
- Moderator | 1364
BigCharlie napsal(a):
Nebo současný běh nových projektů a velkého projektu, který pochází z doby PHP 4.xx, funguje na 5.2 a stále se hodně využívá, ovšem s PHP 5.3 má problémy. Všechno není černobílé.
A to bych na PHP 5.3 přešel velmi rád…
Tohle je nesmyslný argument. Na serveru může běžet jak 5.2, tak 5.3 zároveň a jednotlivé aplikace využívat to co chtějí.
- Ondřej Mirtes
- Člen | 1536
Tahle diskuse tu nedávno byla. Davidova anketa na Twitteru prokázala, že lidi PHP 5.2 ještě potřebují.
Osobně bych z webhostingu, kde 5.3 není, utekl, a z práce, kde by po mně chtěli 5.2, také. Ale bohužel to za ostatní zařídit nemůžu :) Ještě rok to s tou verzí pro 5.2 přežijeme, dokumentaci a addons pište prosím pro PHP 5.3 s namespaces.
- srigi
- Nette Blogger | 558
Vase argumenty ma donutili k zamysleniu sa. Svoj povodny extremny nazor by som teda poupravil jednoducho – zbavme sa neprefixovanej verzie (aspon teda v 1.0). Sam robim s prefixovanym frameworkom (Yii prefixuje vsetky svoje triedy C – CWebUser, CDbCriteria a pod.). Dobre sa na to zvyka – hned viem ci robim so svojou alebo frameworkovou triedou.
- Patrik Votoček
- Člen | 2221
Jak to tady tak čtu tak asi u spousty lidí došlo k nepochopení „znovu otevření“ tohoto vlákna. (Asi se mělo založit nové).
Ale pokud jste četli tento můj post. Tak by jste měli chápat že už se tady nebavíme o odstřihnutí PHP 5.2 u Nette 1.0((už bylo dávno rozhodnuto že se to dělat nebude)). Ale bavíme se tady o zrušení non-prefixed varianty u Nette 1.0.
To že tato varianta byl krok vedle uznal i sám david. A úprava stávajících scriptů z non-prefixed na prefixed verzi doopravdy není složitá. (Navíc většina z vás to bude řešit zároveň s aktualizací z 0.9.x na 1.0 – takže se stejně spoustě úprav nevyhnete). Totální zavrhnutí varianty pro PHP 5.2 bych jak už jsem psal řešil tak za rok u Nette 2.0.
Navíc to bude asi ještě celkem sranda protože je dost možné že za rok tu bude ještě lepší a dokonalejší PHP 5.4. Ale to bych už moc předbíhal.
Takže ještě jednou už nediskutujeme o zrušení podpory PHP 5.2 u Nette 1.0 ale o zrušení non-prefixed varianty Nette 1.0