Hellihello dedlfix,
Ja, hat es nicht. Ich empfehle, dringend, dass du dir das PHP-Handbuchkapitel Classes and Objects (PHP 5) durcharbeitest.
Nun gut, mit "durcharbeiten" wird es wohl noch ein bisschen dauern. Immerhin aber entdecke ich dort die schon mal die beiden Punkte, die mir vor diesem Post nicht klar waren, nämlich das Type-Hinting und auch die von Dir auch unten erwähnte __toString Methode.
Das Zend Framwork macht heftigsten Gebrauch von PHP5s OOP-Features. Es gibt einige Magic Methods, unter anderem __toString(), mit der man einem Objekt mehr als eine Fehlermeldung entlocken kann, wenn man es in einen String-Kontext bringt.
Feine Sache das, gibts ja bei Javascript so auch object.toString oder so.
Anschließend wäre eine Einführung in die SPL angebracht. Auch damit kann man einige Magie zu Klassen hinzufügen, wie beispielsweise Array-Zugriff und Iteration über Objekte.
Iteration mittels foreach über die public-vars einer Klasseninstanz geht doch aber auch ohne, oder versteh ich was falsch? Immerhin aber wird klarer, was die spl_register_autoload macht, mit der das ZF ja seine Konventionsbenamung "Zend_Klassenkategorie_Klassenname" in 'Zend/Klassenkategorie/Klassenname.php' zum Laden anweist.
Dort gibt es auch Links zu Einsteigerartikeln.
Merci, auf jeden Fall weiß ich jetzt, wo weitersuchen!
Einsteigerartikel, meintest du damit http://www.php.net/~helly/php/ext/spl/? Sonst fand ich erstmal nischt.
Kleine Frage vielleicht anbei: wie verstehe ich das hier -
interface RecursiveIterator extends Iterator
interface OuterIterator extends Iterator
class RecursiveIteratorIterator implements OuterIterator
RecursiveItereatr extends Iterator. Das ist klar. Ein "interface" wiederum kann nur "implementiert" werden. Wobei aber Implementierung eigentlich bedeutet, dass die implementierte Interfaceklasse lediglich (!) vorschreibt, welche Methoden die implementierende Klasse enthalten muss. Intuitive Frage dazu: was soll das dann? Fehlerkontrolle?
Dank und Gruß,