RSS: Vše - Programování



Změna syntaxe v PHP 5.3

26. 10. 2008, 09:15:07,Programování,

Patřím mezi ty, kteří vítají s otevřenou náručí změny, kterými prochází oblíbený skriptovací jazyk PHP. Věnoval jsem jim i několik článků zde na blogu (například zde či zde) a svou přednášku na jarním WebCampu. Snažím se průběžně alespoň letmo sledovat práci na nové verzi, a právě při tom jsem narazil na zajímavou informaci.

Oddělovač jmenných prostorů (namespace separator) se zřejmě změní z tzv. "čtyřtečky" (::) na zpětné lomítko (\).

Aplikace pro PHP 5.3 naštěstí zatím moc lidí nevyvíjí a David v Nette určitě zvládne použít automatickou náhradu textu, takže to nikoho moc bolet nebude, ale rozhodně to je pro mě překvapení. Chystaná změna má napomoci vyřešit nejednoznačnosti současné syntaxe a možná to jinak nešlo, ale stále si říkám - proč nepadla volba například na obyčejnou tečku?

Autor: Pavel Šindelka

Komentáře


[1] (Aleš Roubíček) - 26. 10. 2008, 09:58:55
Protože tečka je operátor pro spojování řetězců a kvůli zpětné kompatibilitě, nebo špatnému návrhu to nejde použít...
[2] (LM) - 26. 10. 2008, 10:11:50
Tečka přece nelze použít, funguje jako spojování řetězců:

$x = MyNamespace.myFnc()

Spojuje se konstanta MyNamespace s výsledkem funkce myFnc() nebo se volá funkce MyNamespace.myFnc?
[3] (Pavel Šindelka) - 26. 10. 2008, 10:17:16
[1][2].. máte bod, dostali jste mě :)
[4] (Hrach) - 26. 10. 2008, 11:04:05
Měla se použít čárka, ne zpětné lomítko:

myNamespace|myFunc()

:P :)
[5] (Aleš Roubíček) - 26. 10. 2008, 11:30:35
vydíte a už jste zabředli do nepochopitelného nesmyslu jako statické funkce jmenného prostoru... Kvůli tomu vlastně nebyla čtyřtečka přijata. :D
[6] (LM) - 26. 10. 2008, 11:42:06
S | je stejnej problém jako s tečkou, radši měli namespacy z PHP 5.3 odstranit a nechat to na 6.0, do třetice by se mohli hádat o oddělovači a měli by na to dalších pět let… :p
[7] (kukulich) - 26. 10. 2008, 12:12:44
Nejlepší volba by byla šestitečka :::, ale bohužel prý pro 20% lidí je problém to rozlišit od čtyřtečky.
[8] (Jakub Podhorský) - 26. 10. 2008, 12:47:33
omg tak k tomuhle můžu napsat jen jedno...chce se mi bl*jt velebnosti
[9] (David Grudl) - 26. 10. 2008, 15:57:22
V podstatě bych mohl komitnout Nette připravené na novou podobu jmenných prostorů, ale naděje umírá poslední a stále doufám, že třeba... ;)
[10] (Karel Klíma) - 26. 10. 2008, 19:26:58
Mně se zdála dvojtečka od začátku jako blbost, vzhledem k tomu, že se to používá pro statické metody tříd. Šestitečka už je moc dlouhá, tečka se použít nedá, zpětné lomítko mi z čistě subjektivních důvodů přijde nevhodné, obyčejná čárka taky. Moc možností nezbývá, osobně bych nejraději používal standardní lomítko nebo ostrou závorku doprava.
[11] (Tomáš Fejfar) - 26. 10. 2008, 21:22:26
A co '~' :)
[12] (Ivo) - 27. 10. 2008, 09:16:14
~ zase většina lidí neumí napsat :D
[13] (vv) - 27. 10. 2008, 09:52:01
[4] trubka je bitovy OR
[11] tilda je bitova negace
Takze stejny pripad jako tecka.
[14] (paranoiq) - 27. 10. 2008, 11:29:51
a co dvě tečky?
namespace..class::method()
[15] (Inza) - 28. 10. 2008, 12:03:48
No je to demence - ano jednoznačnost je fajn. A je jasný, že při stávající implementaci by se čtyřtečkou byly problémy - ale... Taky se Vám zdá že PHP zavádí zcela nové konvence? - Objektový operátor potomka je místo tečku šipečka, jménné prostory budou mít lomítko...nevím...

PHP prostě zavádí nové konvence - nemohu si pomoct... (tím neříkám, že jsem zásadně proti;-) - situace je taková že PHP prostě používá pro něco jiné operátory než ostatní a proto musí nutně i pro dlaší věci používat jiné operátory než je zvykem, páč ty, které by se používat měly už jsou zaplněné...)
[16] (v6ak) - 31. 10. 2008, 10:08:45
[14] To vypadá zajímavě... napiš jim to.

[15] Taky občas mám ten pocit.
[17] (paranoiq) - 07. 11. 2008, 16:21:55
[16] napsal jsem. odpověď zní, že rozhodnutí přehodnotí pouze pokud se v příští alfa verzi objeví nějaké nové - dosud nezvažované argumenty proti téhle syntaxi

Komentovat


Tento článek byl uzavřen. Už není možné k němu přidávat komentáře ani hlasovat