Facebook
Twitter
Google+
Kommentare
1

Froscon 2008 – Understanding the PHP Object Model

Wer die Froscon Reihe bis jetzt verfolgt hat, der weiß natürlich, dass ich heute eigentlich über Tanenbaum und seinen Vortrag zum Thema Minix berichten wollte. Ich habe mich aber entschlossen, diesen hinten anzustellen, da ich zu diesem Thema noch nicht wirklich viel zu sagen habe. Aber ich versuche mich die nächsten Tage ein wenig drüber einzulesen. Da ich mir aber vorgenommen habe hier jeden Tag etwas zu schreiben überspringe ich diesen Vortrag einfach und mache bei Sebastian Bergmann weiter.

Das erste was ich zum Vortrag sagen möchte ist, dass ich den Vortragsstil von Sebastian Bergmann sehr angenehm fand. Er hat auf eine ruhige, professionelle Art einfache und auch schwierige Themen erläutert, so das man keine Sekunde das Gefühl hatte es wäre langweilig.

Inhaltlich konnte ich in diesem Vortrag leider nicht viel mitnehmen. Eigentlich habe ich gedacht, dass Sebastian ein paar Sätze über die interne Verwaltung von PHP und Objekten präsentiert. Da hatte ich mich aber leider vertan. Im Grunde genommen war es eine Einführung in die objektorientierte Programmierung. Die Unterschiede zwischen public, private und protected wurden beschrieben und es wurde auf statische Methoden eingegangen. Da ich das ganze jetzt schon eine Weile mache war da nichts neues dabei. Kurz bevor ich endgültig sicher war, dass ich nicht sehr viel lernen werde, kam Bergmann noch mit zwei Themen, die doch sehr interessant waren.

Late Static Binding

Dies ist eine Neuerung, die ab PHP 5.3 aktuell wird. Hier wird ein neues Keyword und zwar static. Ok, static ist natürlich nicht neu aber es gibt einen neuen Kontext, in dem es verwendet werden kann. Bisher war es so, dass man über das Keyword self:: die Möglichkeit hatte auf statische Methoden innerhalb einer Klasse zuzugreifen. Dabei wurde self früh gebunden, das bedeutet, dass self immer die Klasse repräsentiert, in der es aufgerufen wird. Wird die Klasse abgeleitet und die statische Methode überschrieben, so ändert sich gar nichts. Mit PHP 5.3 wird gibt es nun den Möglichkeit statt self:: auch static:: zu verwenden. Static wird dabei bei Ableitung überschrieben. Als kleines Beispiel kann man sich diese einfache Klasse ansehen:

<?php
class  A
{
  public static function doSth( )
  {
    echo __CLASS__;
  }

  public static function test( )
  {
    static::doSth( ); // Here comes Late Static Bindings
  }
}

class B extends A
{
  public static function doSth( )
  {
    echo __CLASS__;
  }
}

B::test( ); // B
A::test( ); // A
?>

Ob das ganze jetzt sinnvoll ist oder nicht, lasse ich mal offen. Mir gefällt die Idee auf jeden Fall und ich denke ich werde es öfters verwenden. Und wenn man sich einmal $this ansieht, dann folgt static nur der Art und Weise, wie man mit $this hantiert, denn auch hier wird erst spät gebunden.

Traits

Noch nicht in PHP 5.3 vorhanden, aber laut Sebastian in der Nachfolgeversion (5.4 oder 6.0) inbegriffen sind Traits. Wie wohl die meisten von euch habe ich noch nie von Traits in meiner langen Programmiererlaufbahn gehört. Eigentlich müsste ich jetzt erstmal anfangen zu erklären, warum Mehrfachvererbung böse ist. Wer Lust hat, der kann ja mal das Diamanten Problem googlen, wer nicht wirklich Bock drauf hat, der wartet einfach, bis ich die nächste zeit mal einen Artikel drüber schrieben werde. Kurz angerissen ist das Problem bei Mehrfachvererung, dass man nie weiß von welcher Elternklasse ich denn nun die Methoden aufrufen muss.

Statt über Vererbung zu gehen verwendet man in PHP einfach Traits. Sebastian Bergmann beschreibt sie als „eine schöne Art Copy & Paste“ zu verwenden. Da ich den Trait Ansatz sehr spannend finde möchte ich hier nicht genauer drauf eingehen und diesem Thema einen ganzen Artikel widmen. Wer aber schon einmal einen Einblick gewinnen will, der kann sich den RFC von Stefan Marr ansehen.

Fazit

Was habe ich also aus diesem Vortrag mitgenommen. Prinzipiell wurde ich inspiriert mich ein wenig mit PHP 5.3 zu beschäftigen, des Weiteren bin ich noch gespannter auf PHP 6. Falls ich in der nächsten Zeit mal wieder einen Vortrag halten muss, dann habe ich bestimmt auch was mitgenommen.

Wer sich die Folien zum Vortrag ansehen will, der kann dies hier machen:

Understanding the PHP Object Model

View SlideShare presentation or Upload your own. (tags: php oop)
Ü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

1 Comments

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