Tach!
Bei den Klassen und Variablen beim Zend-Framework interpretiere ich es mal so, dass, wenn ich davon ausgehen kann, dass alle Variablen vorab deklariert werden, ich auch damit genau weiß, welche Variablen überhaupt in der Klasse vorkommen. Quasi ein Inhaltsverzeichnis.
Dagegen hab ich auch nichts einzuwenden, dass sie in der Klassendefinition aufgeführt werden (außer in Sonderfällen, die sich nicht vermeiden lassen, dann aber dokumentiert gehören. Mittlerweile kennt phpdoc sogar @property(-read/-write), mit dem sich nicht direkt vorhandene "magische" Eigenschaften dokumentieren und in der IDE autovervollständigen lassen).
Das macht es übersichtlich und konsistent. Es geht doch allein um einen Praktikabilitätsgewinn (in der Regel unterm Strich eine z.T. enorme Zeitersparnis).
Ja, aber sinnlose Initialisierungen oder unnötige umständliche Schreibweisen (à la if ($foo == true)) bringen keinen Gewinn. Die hindern mitunter den Lesefluss, weil man da eine eventuelle Bewandnis dahinter sucht, die nicht wirklich vorhanden ist.
Die Vorträge (yahoo theater) von Crockford und auch die Argumente derer, die das Hinterfragen (die führt er da in seinen Vorträgen auch an), finde ich da sehr lehrreich und gehen genau auch immer wieder um das Argument, "jemand" wolle Regeln um ihrer selbst Willen aufstellen.
Vergleich mal nicht Äpfel mit Birnen. Javascript hat einige sehr trickreiche Eigenschaften, vor allem was Semikola betrifft. Da mag das ander aussehen. Wir reden hier aber von PHP und (unnötigen bis unsinnigen) Variableninitialisierungen. Und ich sehe es als noch weniger sinnvoll an, Prinzipien eines Systems unbedingt auf ein anderes übernehmen zu wollen. Jedes hat seine eigene Philosophie und ich denke, man fährt am besten, wenn man nach dieser und nicht zu sehr nach irgendwelchen allgemeinen Prinzipien handelt.
Etwas das sinnvoll ist, sollte verstanden und aus dem Herzen heraus angewendet werden, nicht (nur) aufgrund einer Regel.
dedlfix.