Facebook
Twitter
Google+
Kommentare
2

SPL – Countable

Heute wollen wir mal auf das einfachste Interface der SPL (Standard PHP Library) eingehen und zwar auf Countable. Es ist das einfachste, da es genau eine öffentliche Methode gibt, die es zu implementieren gilt: count( ). Ihr werdet nicht erraten, was sie macht. Sie zählt. Dieses Interface gilt es also immer da zu implementieren, wo es um Mengen, Listen oder andere Gruppen geht.

class List implements Countable
{
  public function count( )
  {
    return $this->getSize( );
  }

  // ...
}

Dieses Beispiel sollte wohl jedem verständlich sein. Viel gewonnen haben wir aber bis jetzt nicht, denn ob ich eine Methode Count oder getSize oder Size nenne, spielt in den meisten Fällen keine Rolle. Es gibt aber zwei mehr oder weniger gute Argumente es trotzdem zu machen. Zum einen schafft man so Konsistenz, denn eine durchgängige Benennung von Methoden, die eine Größe ausgeben in vielen PHP Projekten ist doch schon mal nicht verkehrt. Der zweite Vorteil ist die Verwendung von PHP Standardfunktionen, wie zum Beispiel count. Klingt jetzt verwirrend, ich weiß. Deswegen hier ein weiteres Code Beispiel:

$list = new List;
echo 'List Size: '.count( $list );

Durch die Kombination mit den Array Interfaces, kann man es so schaffen eine Klassen zum implementieren, die sie genau wie ein PHP Array verhält, aber zum Beispiel Typsicherheit mit sich bringt.

Über den Autor

Nils Langner

Nils Langner ist der Gründer von "the web hates me" und auch der Hauptautor. Im wahren Leben leitet er das Qualitätsmanagementteam im Gruner+Jahr-Digitalbereich und ist somit für Seiten wie stern.de, eltern.de und gala.de aus Qualitätssicht verantwortlich. Nils schreibt seit den Anfängen von phphatesme, welches er ebenfalls gegründet hat, nicht nur für diverse Blogs, sondern auch für Fachmagazine, wie das PHP Magazin, die t3n, die c't oder die iX. Nebenbei ist er noch ein gern gesehener Sprecher auf Konferenzen. Herr Langner schreibt die Texte über sich gerne in der dritten Form.
Kommentare

2 Comments

  1. Schon mal geprüft ob die Fehlermeldungen der SPL nicht noch einfachere Interfaces haben, weil diese noch nicht ein mal implementiert werden müssen?

    Reply

Leave a Comment.

Link erfolgreich vorgeschlagen.

Vielen Dank, dass du einen Link vorgeschlagen hast. Wir werden ihn sobald wie möglich prüfen. Schließen