| |
 |
 |
06.08.2008, 17:38
|
#1
|
Status: Erfahrener Benutzer
Registriert seit: 26.04.2007
Beiträge: 730
|
Namepsace in PHP
Huhu ,
bin gerade über folgendes gestolpert.
Zitat:
Namespaces
With PHP 5.3 coming up on the horizon, the Zend Framework API faces a re-design. While namespaces will hopefully lead to more readable code, Zend developers will finally need to start thinking about some standards for abstract classes and interfaces.
|
Irgendwie weiß ich nicht wie ich das verstehen soll. Kann mir das einer mal erklären ?
__________________
Wenn du gewinnen willst, musst du auch mal was gemeines und hinterlistiges machen. Oder wie die Franzosen sagen: bartesk sein.
|
|
|
06.08.2008, 17:57
|
#2
|
Status: Erfahrener Benutzer
Registriert seit: 28.12.2006
Ort: Berlin
Beiträge: 9.205
|
Mist, irgendwie ist der Text verschwunden .... Ich hatte hier voll den Prima Text -.- Nagut, jetzt gibt es nur die Zusammenfassung:
Über Namespaces. Da steht eigentlich das Wichtigste darüber drin, vorallen auch über die Probleme, die mit der Verwendung des doppelten Doppelpunkt ( Scope Resolution Operator, "Paamayim Nekudotayim") als Trennsymbol für die einzelnen Namespaces und deren Unternamespaces in Bezug zu statischen Attributen und Klassenkonstanten.
Wie sie allerdings den letzten Halbsatz meinen, kann ich dir auch nicht so genau sagen. Ich denke, dass man sich in Zukunft (neue?, andere?) Gedanken machen muss, wie man konkrete bzw abstrakte Klassen und Interfaces voneinander unterscheidbar macht. Vergleiche dazu eine Java-Konvention abstrakte Klassen mit "A" (zB AController) und Interfaces mit "I" (zB "IRole") zu benennen. Ich kann mir vorstellen, dass damit gemeint ist, dass Namespaces ja eine logische Einheit bilden sollen. Im Fall vom ZF würde zB Zend_Loader (bzw Zend::Loader) im Namespace Zend liegen, obwohl das eigentlich falsch ist. Auffälliger vielleicht bei Zend_Translate ( Zend::Translate): Da gibt es ja das darunter liegende Paket wirklich, aber die "Hauptklasse" liegt im übergeordneten Namespace. Is irgendwie murksig.
Kein Schimmer, ob das damit gemeint ist. Schließlich ging es bei mir plötzlich auch nur noch um konkrete Klassen  Ein quasi-Standard ist aber nur wünschenswert! Und ich hoffe, dass Zend Neon bald darauf angepasst wird
Edit:
Finde den Anfang meines ersten Links aber unglaublich treffend:
Zitat:
|
Main assumption of the model is that the problem that we are to solve is the problem of the very long class names in PHP libraries. We would not attempt to take autoloader's job or create packaging model - only make names manageable.
|
Geändert von KingCrunch (06.08.2008 um 18:22 Uhr).
|
|
|
06.08.2008, 19:16
|
#3
|
Status: Erfahrener Benutzer
Registriert seit: 22.03.2007
Ort: Böbingen/Rems
Beiträge: 609
|
|
|
|
06.08.2008, 19:33
|
#4
|
Status: Erfahrener Benutzer
Registriert seit: 28.12.2006
Ort: Berlin
Beiträge: 9.205
|
Das mit namespace::* für den aktuellen Namespace wusste ich bisher nicht, find ich aber sinnvoll. Wennde noch weitere Infos hast, her damit
Edit:
Matthew deutet selbst auch auf das Porblem hin, dass Zend::View nicht im Namespace Zend::View liegt. Der Vorschlag mit Zend::View::AView wirkt aber doppelt gemoppelt (View in View quasi). Und großer Fan von ungarischer Notation bin ich eigentlich nicht -.- Wenn man dann konsequent sein will, muss man eben diese Notation auch für Eigenschaften und Variablen einfügen ( $aFoo für Array, iId für Integer usw). Na, man muss es auch net übertreiben 
Geändert von KingCrunch (06.08.2008 um 19:39 Uhr).
|
|
|
06.08.2008, 19:36
|
#5
|
Status: Moderator
Registriert seit: 14.12.2006
Ort: Zürich (Schweiz)
Beiträge: 1.470
|
Zitat:
Zitat von akkie
|
An diese Probleme hab ich noch gar nicht gedacht...
Zitat:
Zitat von akkie
|
Ich finde IView, AView etc. auch nicht wirklich schön... 
__________________
Moderator
Kein Support via Foren-PN
|
|
|
03.09.2008, 17:04
|
#6
|
Status: Erfahrener Benutzer
Registriert seit: 28.12.2006
Ort: Berlin
Beiträge: 9.205
|
Es gibt ein neues RFC über Namespaces. Anscheinend sind während des Alpha-Tests neue Punkte aufgekommen, die dort behandelt werden.
|
|
|
09.11.2008, 21:22
|
#7
|
Status: Erfahrener Benutzer
Registriert seit: 22.03.2007
Ort: Böbingen/Rems
Beiträge: 609
|
Hi
Ich weiß nicht ob einer von euch das ganze Thema mit den Namespaces in PHP 5.3 verfolgt. In einem neuen RFC wird jetzt vorgeschlagen den Namespace-Separator von :: in \ zu verwandeln. Steckt da von euch jemand tiefer drinn? Ich frage mich nämlich gerade wieso da nicht einfach ein Punkt genommen wird? Das kennt man von Java, C#, AS ... . Liegt es daran das der Compiler den nicht zu hundert Prozent beim kompilieren erkennt, da für die Stringverknüpfung verwendet wird?
http://wiki.php.net/rfc/namespaceseparator
Mfg Akkie
Geändert von akkie (09.11.2008 um 21:24 Uhr).
|
|
|
09.11.2008, 21:39
|
#8
|
Status: Erfahrener Benutzer
Registriert seit: 28.12.2006
Ort: Berlin
Beiträge: 9.205
|
Zitat:
|
In einem neuen RFC wird jetzt vorgeschlagen den Namespace-Separator von :: in \ zu verwandeln. Steckt da von euch jemand tiefer drinn? Ich frage mich nämlich gerade wieso da nicht einfach ein Punkt genommen wird?
|
Gegenfrage: Wieso sollte man?
Zitat:
|
Das kennt man von Java, C#, AS ...
|
Is kein Grund
Zitat:
|
Liegt es daran das der Compiler den nicht zu hundert Prozent beim kompilieren erkennt, da für die Stringverknüpfung verwendet wird?
|
Is auf jeden Fall denkbar.
Ich verfolge das etwas unregelmässig, das Problem mit :: is mir aber auch schon begegnet. Welches Symbol nun letzten Endes verwendet wird ist vergleichsweise Wurscht. Die Java-Variante ist zB auch nicht optimal, weil es dort keine Unterscheidung zwischen Klassen- (:  und Objekt-(->), und Namespace (jetz wohl \)-Kontext gibt. Insofern denken die sich sicher was dabei 
|
|
|
09.11.2008, 22:01
|
#9
|
Status: Erfahrener Benutzer
Registriert seit: 22.03.2007
Ort: Böbingen/Rems
Beiträge: 609
|
Zitat:
|
Gegenfrage: Wieso sollte man?
|
Weil es ein Konzept ist was viele Sprachen auch implementieren. Ich bin ein Fan von schönem/strukturiertem Code und ein My.Namespace sieht für mich einfach besser aus als My\Namespace. Ich frage mich nur wieso man sich Gedanken macht und dann Trenner wie **, ^^,  ... vorschlägt wenn es bereits Konzepte gibt die von den Entwicklern akzeptiert wurden.
|
|
|
09.11.2008, 22:17
|
#10
|
Status: Erfahrener Benutzer
Registriert seit: 28.12.2006
Ort: Berlin
Beiträge: 9.205
|
Zitat:
Zitat von akkie
Weil es ein Konzept ist was viele Sprachen auch implementieren. Ich bin ein Fan von schönem/strukturiertem Code und ein My.Namespace sieht für mich einfach besser aus als My\Namespace. Ich frage mich nur wieso man sich Gedanken macht und dann Trenner wie **, ^^,  ... vorschlägt wenn es bereits Konzepte gibt die von den Entwicklern akzeptiert wurden.
|
Weil es schlicht andere Sprachen sind? Wie du schon sagst: Der Punkt . ist der Stringkonkatenator, in Java eben nicht. "Sie für mich einfach besser aus" ... Naja, besser oder schlechter lesbar wirds dadurch allerdings auch nicht. Ich finds zum Beispiel das Dollarzeichen $ am Anfang von Variablen auch übersichtlicher, als ohne (wie bei Java)
Nebenbei gibt es unter [1] noch gaaanz viele andere Infos, die deine Fragen klären könnten, in dem von dir verlinkten Proposal findet sich ja auch die Tabelle, die die Pros und Kontras listet.
[1] http://wiki.php.net/rfc/backslashnamespaces
|
|
|
10.11.2008, 08:57
|
#11
|
Status: Erfahrener Benutzer
Registriert seit: 17.12.2007
Beiträge: 1.375
|
Zitat:
Zitat von akkie
Hi
Ich weiß nicht ob einer von euch das ganze Thema mit den Namespaces in PHP 5.3 verfolgt. In einem neuen RFC wird jetzt vorgeschlagen den Namespace-Separator von :: in \ zu verwandeln. Steckt da von euch jemand tiefer drinn? Ich frage mich nämlich gerade wieso da nicht einfach ein Punkt genommen wird? Das kennt man von Java, C#, AS ... . Liegt es daran das der Compiler den nicht zu hundert Prozent beim kompilieren erkennt, da für die Stringverknüpfung verwendet wird?
http://wiki.php.net/rfc/namespaceseparator
Mfg Akkie
|
Ein Parser würde mit dem Punkt schon zurecht kommen, auch wenn er doppelt verwendet würde, allerdings wäre es eine unsaubere Lösung, wenn man für 2 verschiedene Dinge den selben Operator benutzt. Ich bin aber auch nicht für das Backslash, weil es nicht besonders komfortabel zu tippen ist. Ich fände ja diesen dreifach Doppelpunkt passend.
|
|
|
10.11.2008, 09:31
|
#12
|
Status: Erfahrener Benutzer
Registriert seit: 22.03.2007
Ort: Böbingen/Rems
Beiträge: 609
|
Zitat:
|
Ich fände ja diesen dreifach Doppelpunkt passend.
|
Den würde ich auch dem Backslash vorziehen. So wie ich das raus gelesen habe, steht der Backslash aber so gut wie fest.
Mfg Akkie
|
|
|
10.11.2008, 10:12
|
#13
|
Status: Erfahrener Benutzer
Registriert seit: 28.12.2006
Ort: Berlin
Beiträge: 9.205
|
Zitat:
Zitat von deetee
Ein Parser würde mit dem Punkt schon zurecht kommen, auch wenn er doppelt verwendet würde, allerdings wäre es eine unsaubere Lösung, wenn man für 2 verschiedene Dinge den selben Operator benutzt. Ich bin aber auch nicht für das Backslash, weil es nicht besonders komfortabel zu tippen ist. Ich fände ja diesen dreifach Doppelpunkt passend.
|
Der Backslash wurde eben aus genau dem Grund gewählt: Die meisten sind dann doch eher englischsprachig und dort ist der Backslash ohne Umschalt erreichbar.
|
|
|
10.11.2008, 12:17
|
#14
|
Status: Erfahrener Benutzer
Registriert seit: 10.09.2007
Ort: Hilden
Beiträge: 4.463
|
Ebenso hier beim Numpad 
__________________
Neues Projekt: zandman.de - Status: WIP
|
|
|
10.11.2008, 12:22
|
#15
|
Status: Neuer Benutzer
Registriert seit: 10.12.2007
Beiträge: 17
|
Zitat:
Zitat von DennisBecker
Ebenso hier beim Numpad 
|
Was hast Du denn für ein Numpad?
|
|
|
10.11.2008, 12:23
|
#16
|
Status: Erfahrener Benutzer
Registriert seit: 28.12.2006
Ort: Berlin
Beiträge: 9.205
|
Zitat:
Zitat von DennisBecker
Ebenso hier beim Numpad 
|
peinlich genug, ich musste es ausprobieren  Aber das is der Slash, nich der Backslash.
Finds aber unterhaltsam, dass ausgerechnet Informatiker mit "Ich finds besser" und Optik argumentieren, aber kein Wort zu den Argumenten verlieren, mit den das Proposal lang und breit erläutert, wieso der Backslash die Wahl ist/war.  Zum Beispiel:
Zitat:
Problems:- ...
- to many, \this\way will look weird at first.
|

|
|
|
10.11.2008, 12:41
|
#17
|
Status: Erfahrener Benutzer
Registriert seit: 10.09.2007
Ort: Hilden
Beiträge: 4.463
|
Ahjo, stimmt, ist ja / und nicht \ ... ICh benutze das Numpad nur so selten und meist dann auch nur, um Zahlen zu tippen ...
Zum Thema \ ist so schlecht erreichbar ... Ich kenne viele Programmierer, die zum Coden auf englische Tastatur umstellen um weniger Tastenkombinationen drücken zu müssen. Ich denke irgendwann gewöhne ich mir das auch noch an 
__________________
Neues Projekt: zandman.de - Status: WIP
|
|
|
10.11.2008, 16:05
|
#18
|
Status: Erfahrener Benutzer
Registriert seit: 28.12.2006
Ort: Berlin
Beiträge: 9.205
|
Zitat:
|
Zum Thema \ ist so schlecht erreichbar ... Ich kenne viele Programmierer, die zum Coden auf englische Tastatur umstellen um weniger Tastenkombinationen drücken zu müssen. Ich denke irgendwann gewöhne ich mir das auch noch an
|
Ich finds eigentlich wenig tragisch. Wie du schon sagst stellen viele sowieso ihr Layout um, und das aus gutem Grund: So gut wie alle Sprachen nutzen eben das englische Layout für Entscheidungen, welche Syntax praktischer is oder nicht.
|
|
|
| Themen-Optionen |
|
|
| Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge anzufügen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist Aus.
|
|
|
| |