Převod normální Nette verze na verzi prefixovanou
- pave.kucera
- Člen | 122
Existuje na převod normální verze Nette do prefixované podoby nějaký nástroj? Snažím se použít DataGrid na mém webu, který ale jede na prefixovaném Nette, takže to samozřejmě nefunguje a kdyby šlo upravit zdroják DataGridu automaticky, bylo by to mnohem jednodušší, než přidávat k Nette třídám ,,N" :-).
- Tomik
- Nette Evangelist | 485
Pokud se nemýlím, tak tento DataGrid nepoužívá prefixed verzi – alespoň ta verze ze SVN – http://code.google.com/…te-datagrid/ (https://componette.org/search/?…).
- pave.kucera
- Člen | 122
Právě, nepoužívá a tam je zakopaný pes. Potřeboval bych ho upravit pro použití s prefixed verzí a ruční úpravy kódu se docela bojím.
- pave.kucera
- Člen | 122
Takže žádný nástroj, který by zvládl přepsat názvy Nette tříd na prefixovanou verzi, neexistuje? :( Tak hurá do práce…
- Ondřej Mirtes
- Člen | 1536
romansklenar napsal(a):
Spíš bych zvolil druhou cestu (pokud to půjde):
compatibility.php
Dobrý nápad, ale vůbec to nebere v úvahu, proč prefixed verze Nette vznikla. Vždyť u třídy, jejíž název v daném prostředí už existuje (a není z Nette) to zařve, že ji nelze deklarovat znova.
Nebo jak jsi to myslel?
- romansklenar
- Člen | 655
To je právě to, co si musí ošéfovat (proto to „pokud to půjde“). Pokud je důvod proč používá prefixed verzi jen tento, tak to imho bez problémů půjde.
- Ondřej Mirtes
- Člen | 1536
Ty jo, ale bylo by to potřeba v PHP 5.2, v PHP 5.3 už můžu použít namespaces :o)
- Ondřej Mirtes
- Člen | 1536
Komentář jsem přečetl a něco takového dělám ručně, ale nemůže to fungovat právě pro ty final třídy :)
- David Grudl
- Nette Core | 8249
Je fakt, že existence tří verzí je nepříjemnost komplikující život, hodilo by se šikovné řešení, ale žádné jiné než funkci class_alias neznám. Pokud použijete tento trik:
Tak to může vést k těžko odhalitelným chybám: