Dokumentation zu Interfaces

Hallo,

auf meinem PHP5 sind einige Interfaces vordefiniert:

[0] => Traversable
[1] => IteratorAggregate
[2] => Iterator
[3] => ArrayAccess
[4] => Serializable
[5] => RecursiveIterator
[6] => OuterIterator
[7] => Countable
[8] => SeekableIterator
[9] => SplObserver
[10] => SplSubject
[11] => Reflector

Kann mich mal jemand vom Schlauch schubsen und mir verraten, wo diese
dokumentiert sind?

Servus,
Konni


--
Scharfe Wochen im Oktober - Meerrettichspezialitäten und mehr
http://www.scharfe-wochen.de/
kscheller [ Sa, 06 Oktober 2007 12:30 ] [ ID #1838197 ]

Re: Dokumentation zu Interfaces

Konni Scheller schrieb:

> Kann mich mal jemand vom Schlauch schubsen und mir verraten, wo diese
> dokumentiert sind?

Das PHP-Manual erlaubt eine Suche in verschiedenen Bereichen. Sucht man
"Transversable" auf "all php.net sites", so kommt dies:
http://de.php.net/results.php?q=3DTraversable&l=3Den&p=3Dall

HTH
Niels

--
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------
Niels Braczek [ Sa, 06 Oktober 2007 12:56 ] [ ID #1838198 ]

Re: Dokumentation zu Interfaces

On 6 Okt., 12:30, kschel... [at] ochs.franken.de (Konni Scheller) wrote:
> Hallo,
>
> auf meinem PHP5 sind einige Interfaces vordefiniert:
>
> [0] =3D> Traversable
> [1] =3D> IteratorAggregate
> [2] =3D> Iterator
> [3] =3D> ArrayAccess
> [4] =3D> Serializable
> [5] =3D> RecursiveIterator
> [6] =3D> OuterIterator
> [7] =3D> Countable
> [8] =3D> SeekableIterator
> [9] =3D> SplObserver
> [10] =3D> SplSubject
> [11] =3D> Reflector
>
> Kann mich mal jemand vom Schlauch schubsen und mir verraten, wo diese
> dokumentiert sind?
>
> Servus,
> Konni
>
> --
> Scharfe Wochen im Oktober - Meerrettichspezialitäten und mehrhttp://www=
..scharfe-wochen.de/

Teile davon sind aus der SPL Library die seit PHP5 dabei ist. Diese
ist zum Beispiel hier dokumentiert:
http://www.php.net/~helly/php/ext/spl/
love [ Sa, 06 Oktober 2007 13:45 ] [ ID #1838201 ]

Re: Dokumentation zu Interfaces

Niels Braczek <nbraczek [at] freenet.de> wrote:

> Das PHP-Manual erlaubt eine Suche in verschiedenen Bereichen. Sucht man
> "Transversable" auf "all php.net sites", so kommt dies:
> http://de.php.net/results.php?q=Traversable&l=en&p=all

Erstmal danke. So richtig führt das allerdings auch nicht weiter.
Aktuell existiert die Seite nicht, die Cache-Version führt zu dem
Klassendiagramm, das ich bereits über Google gefunden hatte.

Was mich eigentlich interessiert: worum gehts bei dem Kram überhaupt?
Wie benutzt man die Methoden der Interfaces, respektive, welchen Zweck
verfolgen z.B. solche Funkti^WMethoden wie getLHS() oder getRHS() im
DualIterator usw.

Da fehlt mir noch ein wenig der Überblick. Unnütz ist es nicht; das
Klassendiagramm unter

<http://www.php.net/~helly/php/ext/spl/interfaceTraversable__inherit__gr
aph.png>

zeigt die Beziehungen der Iteratoren untereinander und klärt - ein wenig
- auf. Aber das reicht natürlich nicht, um das zu verstehen und auch
(richtig) anzuwenden.

Servus,
Konni



--
Scharfe Wochen im Oktober - Meerrettichspezialitäten und mehr
http://www.scharfe-wochen.de/
kscheller [ Sa, 06 Oktober 2007 17:05 ] [ ID #1838206 ]

Re: Dokumentation zu Interfaces

Konni Scheller wrote:

> Was mich eigentlich interessiert: worum gehts bei dem Kram überhaupt?
> Wie benutzt man die Methoden der Interfaces,

Ich unterstelle Dir mal das Du nicht so recht weis was ein Interface
ist. Weil Methoden von Interfaces lassen sich nicht nutzen.

Mal ganz einfach Ausgedrückt werden in einem Interface nur
Methodenrümpfe definiert.

interface IMyInterface
{

function doThis();
function doOther(array $params);

}

Dieses legt jetzt z.B. fest das alle Klassen die dieses implementieren
die 2 Methoden doThis und doOther besitzen müssen.

Ein Interface sagt letztendlich was das Wort "Schnittstelle" nicht
eindeutiger Beschreiben könnte.

Für was das gut ist? Das ist einfach. Wenn ein Object eine Schnittstelle
implementiert ist sichergestellt das es die im Interface definierten
Methoden besitzt. Da sich mehrer Schittstellen in eine Klasse
implementieren lassen kann man sich so recht gut anhand dieser
orientieren welche funktionalität eine Klasse bereit stellt.

Ein beliebiges Plugin von vielen Programmen baut z.B. auf einem
Interface auf welches definiert was ein Plugin können soll. So ist
sichergestellt das eben diese Schnittstelle gegeben ist.

zb.:

function register_plugin(IPluginInterface $interface) {
// ...
}

$interface ist hier natürlich vom Type einer Klasse die das Interface
implmentiert.

MfG. Ulf

--
_,
_(_p> Ulf [Kado] Kadner
\<_)
^^
Ulf Kadner [ Sa, 06 Oktober 2007 18:58 ] [ ID #1838207 ]

Re: Dokumentation zu Interfaces

Ulf Kadner <dr_logic [at] gmx.net> wrote:

> Ich unterstelle Dir mal das Du nicht so recht weis was ein Interface
> ist. Weil Methoden von Interfaces lassen sich nicht nutzen.

Sorry, war ungenau formuliert. Ein Interface ist eine Art abstrakte
Klasse, allerdings eben ohne Methoden, aber mit (hm, wie formuliere ich
das mit eigenen Worten?) "Stempel", wie Methoden anzulegen sind, und
welche Parameter sie erwarten usw.

> Mal ganz einfach Ausgedrückt werden in einem Interface nur
> Methodenrümpfe definiert.

Genau das meinte ich. Oder so.

> Für was das gut ist? [..tolle Erklärung gesnipt..]

Ja. Ist klar. Seit einer Weile :-) [1]

Was mich jetzt eigentlich interessiert, was die in mein PHP eingebauten
Interfaces eigentlich tun und was für Implementationen sie erwarten,
damit ich sie benutzen kann.

Iterator ist einigermaßen klar. [2] Aber was zur Hölle ist ein "Iterator
Aggregate", ein "SeekableIterator"? Was erwarten diese für
Implementierungen? Stellvertretend gelten diese dummen Fragen auch für
die anderen Interfaces.

Servus,
Konni


[1] Heute mittag.
[2] Tatsächlich habe ich mir in einem php4-Projekt damals einen ganz
ähnlich funktionierenden selbst gebaut. Als abstrakte Klasse und die
dann "implementiert"




--
Scharfe Wochen im Oktober - Meerrettichspezialitäten und mehr
http://www.scharfe-wochen.de/
kscheller [ Sa, 06 Oktober 2007 21:51 ] [ ID #1838210 ]

Re: Dokumentation zu Interfaces

Konni Scheller wrote:

> Was mich jetzt eigentlich interessiert, was die in mein PHP eingebauten
> Interfaces eigentlich tun und was für Implementationen sie erwarten,
> damit ich sie benutzen kann.

Gute Frage. Irgendwo hab ich mal ne zu einigen dieser Anleitung gehabt.
Wenn ich diese finde (kenn das Medium im Moment garnicht in dem die
standen) kann ich die Dir gern schicken.

OK?

MfG, Ulf

--
_,
_(_p> Ulf [Kado] Kadner
\<_)
^^
Ulf Kadner [ Sa, 06 Oktober 2007 22:03 ] [ ID #1838211 ]

Re: Dokumentation zu Interfaces

Ulf [Ingrid] Kadner wrote:

> Gute Frage. Irgendwo hab ich mal ne zu einigen dieser Anleitung gehabt.
> Wenn ich diese finde (kenn das Medium im Moment garnicht in dem die
> standen) kann ich die Dir gern schicken.

Ein paar werden z.B. in Sebian Bergmanns Buch erklärt:
http://www.professionelle-softwareentwicklung-mit-php5.de/er ste_auflage/

MfG, Ulf

--
_,
_(_p> Ulf [Kado] Kadner
\<_)
^^
Ulf Kadner [ Sa, 06 Oktober 2007 22:13 ] [ ID #1838212 ]

Re: Dokumentation zu Interfaces

"Konni Scheller" <kscheller [at] ochs.franken.de> schrieb
> Iterator ist einigermaßen klar. [2] Aber was zur Hölle ist ein "Iterator
> Aggregate", ein "SeekableIterator"? Was erwarten diese für
> Implementierungen? Stellvertretend gelten diese dummen Fragen auch für
> die anderen Interfaces.

Hier werden einige Interfaces der SPL erklärt. Ich denke das sollte dir
speziell bei den Interator-Interfaces weiterhelfen:
http://devzone.zend.com/article/2565-The-Standard-PHP-Librar y-SPL

mfg Xion
Christian Franzen [ Sa, 06 Oktober 2007 23:02 ] [ ID #1838215 ]

Re: Dokumentation zu Interfaces

Konni Scheller schrieb:
> Sorry, war ungenau formuliert. Ein Interface ist eine Art abstrakte
> Klasse, allerdings eben ohne Methoden, aber mit (hm, wie formuliere ich
> das mit eigenen Worten?) "Stempel", wie Methoden anzulegen sind, und
> welche Parameter sie erwarten usw.

Ein Interface ist wie eine abstrakte Klasse mit ausschließlich
abstrakten öffentlichen Methoden. Eine Klasse kann dabei mehrere
Interfaces definieren, im Gegensatz dazu kann sie nur maximal von einer
Basisklasse erben.

Ausnahme: zwei Interfaces definieren die selbe Methode, dann geht es
nicht, dass man beide implementiert.

--
Mit freundlichen Grüßen,
Christoph Herrmann

http://dragonprojects.de/
Christoph Herrmann [ Sa, 06 Oktober 2007 23:57 ] [ ID #1838219 ]

Re: Dokumentation zu Interfaces

Ulf Kadner <dr_logic [at] gmx.net> wrote:

> Gute Frage. Irgendwo hab ich mal ne zu einigen dieser Anleitung gehabt.
> Wenn ich diese finde (kenn das Medium im Moment garnicht in dem die
> standen) kann ich die Dir gern schicken.

Klar, gerne. Oder Du bringst sie mit, wenn ich einen zweiten
dclp-Treff-Versuch starte ;)

Servus,
Konni

--
Scharfe Wochen im Oktober - Meerrettichspezialitäten und mehr
http://www.scharfe-wochen.de/
kscheller [ So, 07 Oktober 2007 01:13 ] [ ID #1838686 ]

Re: Dokumentation zu Interfaces

Christian Franzen <christian.franzen [at] rwth-aachen.de> wrote:

> http://devzone.zend.com/article/2565-The-Standard-PHP-Librar y-SPL

Iterator scheint das einzige von Bedeutung zu sein... ;)

Servus,
Konni
--
Scharfe Wochen im Oktober - Meerrettichspezialitäten und mehr
http://www.scharfe-wochen.de/
kscheller [ So, 07 Oktober 2007 01:13 ] [ ID #1838687 ]

Re: Dokumentation zu Interfaces

Konni Scheller wrote:
> Ulf Kadner <dr_logic [at] gmx.net> wrote:
>
>> Gute Frage. Irgendwo hab ich mal ne zu einigen dieser Anleitung gehabt.

Das wollte auch mal nen Satz werden wenns groß ist.

>> Wenn ich diese finde (kenn das Medium im Moment garnicht in dem die
>> standen) kann ich die Dir gern schicken.
>
> Klar, gerne. Oder Du bringst sie mit, wenn ich einen zweiten
> dclp-Treff-Versuch starte ;)

Das scheint nicht so einfach zu sein. Irgendwie war der Zuspruch dazu in
der Grillgruppe nicht so überschäumend.

MfG, Ulf

--
_,
_(_p> Ulf [Kado] Kadner
\<_)
^^
Ulf Kadner [ So, 07 Oktober 2007 02:43 ] [ ID #1838688 ]

Re: Dokumentation zu Interfaces

Konni Scheller wrote:

> Was mich jetzt eigentlich interessiert, was die in mein PHP
> eingebauten Interfaces eigentlich tun und was für Implementationen
> sie erwarten, damit ich sie benutzen kann.

Du kannst auch mal in den Buchladen deines Vertrauens gehen, dir das Buch
"PHP Design Patterns" von Stephan Schmidt (O'Reilly - Verlag) in die Hand
nehmen und dort einige Seiten zu SPL lesen.

Dort gibt es ab Seite 40 eine 15 Seiten kurze Erklärung zu SPL.

Gruß
Johannes

--
Emails ohne "[nospam]" im Betreff werden kommentarlos gelöscht.
Johannes Mueller [ So, 07 Oktober 2007 10:07 ] [ ID #1838692 ]

Re: Dokumentation zu Interfaces

Johannes Mueller <johannes_m [at] gmx.net> wrote:

> Du kannst auch mal in den Buchladen deines Vertrauens gehen, dir das Buch
> "PHP Design Patterns" von Stephan Schmidt (O'Reilly - Verlag) in die Hand
> nehmen und dort einige Seiten zu SPL lesen.

LOL, klar, das haben die Buchläden einfach so da. :-) Vielleicht an der
Uni.

Abgesehen davon: Design Patterns sind kein Problem, solange sie
dokumentiert sind :-)

Servus,
Konni


--
Scharfe Wochen im Oktober - Meerrettichspezialitäten und mehr
http://www.scharfe-wochen.de/
kscheller [ So, 07 Oktober 2007 11:16 ] [ ID #1838693 ]

Re: Dokumentation zu Interfaces

Konni Scheller wrote:

>> Du kannst auch mal in den Buchladen deines Vertrauens gehen, dir das
>> Buch "PHP Design Patterns" von Stephan Schmidt (O'Reilly - Verlag)
>> in die Hand nehmen und dort einige Seiten zu SPL lesen.
>
> LOL, klar, das haben die Buchläden einfach so da. :-) Vielleicht an
> der Uni.

....also ich hab es schon des öfteren im Buchladen gesehen, aber ich wohn
halt auch in 'ner Grossstadt mit mehreren Unis.

> Abgesehen davon: Design Patterns sind kein Problem, solange sie
> dokumentiert sind :-)

Ich meinte es tatsächlich so, wie ich es schrieb. In vielen Buchläden gibt
es doch Sessel und Leseecken, kaufen braucht man es ja nicht gleich, wenn
einem die restlichen 300 Seiten egal sind.

Gruß
Johannes

--
Emails ohne "[nospam]" im Betreff werden kommentarlos gelöscht.
Johannes Mueller [ So, 07 Oktober 2007 11:33 ] [ ID #1838694 ]

Re: Dokumentation zu Interfaces

Ulf Kadner <dr_logic [at] gmx.net> wrote:

> Das scheint nicht so einfach zu sein. Irgendwie war der Zuspruch dazu in
> der Grillgruppe nicht so überschäumend.

Offenbar lesen die nur wenige. :-) Ich ahne, warum.

Servus,
Konni
--
Scharfe Wochen im Oktober - Meerrettichspezialitäten und mehr
http://www.scharfe-wochen.de/
kscheller [ So, 07 Oktober 2007 11:44 ] [ ID #1838695 ]

Re: Dokumentation zu Interfaces

Konni Scheller schrieb:
> Iterator scheint das einzige von Bedeutung zu sein... ;)

Jein, IteratorAggregate ist auch interessant.

Auf dieser Seite wird der Unterschied recht gut erklärt, finde ich:
http://www.professionelle-softwareentwicklung-mit-php5.de/er ste_auflage/oop.iterators.interfaces.html

Das Buch "PHP Design Patterns", das hier im Thread schon genannt wurde,
kann ich übrigens auch nur empfehlen. Komplett. :)

Gruß,
Lars
Lars Feyerabend [ Di, 09 Oktober 2007 13:07 ] [ ID #1840510 ]

Re: Dokumentation zu Interfaces

Lars Feyerabend <pulsar [at] lars-feyerabend.de> wrote:

> Jein, IteratorAggregate ist auch interessant.

Latürnich, das gehört ja zu dem ganzen Iterator-Gesocks dazu ;)

Servus,
Konni
--
Scharfe Wochen im Oktober - Meerrettichspezialitäten und mehr
http://www.scharfe-wochen.de/
kscheller [ Di, 09 Oktober 2007 16:45 ] [ ID #1840517 ]
PHP » de.comp.lang.php.misc » Dokumentation zu Interfaces

Vorheriges Thema: Migrationen von PHP4 Code nach PHP5
Nächstes Thema: Warnhinweis: $inhalt3 = htmlentities($inhalt);