• Projektwerkstatt: OOPwp

    von am 20. Mai 2010

    Zuerst mal Danke für die vielen Zuschriften gestern. Der Artikel kam wohl gut an und wird auch noch ein oder zwei Nachfolger in der nächsten Zeit haben. Ideen habe ich dank eurer Mails jetzt genug. Jetzt aber zum eigentlichen Artikel.

    OOPwp, was könnte das sein? Ist gar nicht so schwierig. Wie wir alle wissen, ist WordPress recht prozedural abgebaut. Das ist auch OK so. Ich kann ja meine Plugins, die ich dazu baue so objektorientiert wie ich will basteln. Ich weiß aber auch, dass sich viele daran stören, dass die Anknüpfpunkte an WordPress doch sehr einfach gehalten sind. Es gibt soviel ich weiß ein paar ehemalige Core-Wordpress-Entwickler die WP komplett OOP “nachprogrammiert” haben. Das war aber wohl leider kein Erfolg. Jetzt kommt meine Idee.

    Wie wäre es, wenn man ein Plugin bastelt, dass eine neue Plugin-Schnittstelle bietet und zwar eine mti einem  wirklich sauberen OOP-Interface. Da müsste man sich jetzt natürlich Gedanken machen, wie das am besten auszusehen hat, aber dieses Plugin könnte man dann allen zur Verfügung stellen und die könnte dann eine OOP-Plugin Version basteln. Glaubt ihr sowas könnte genutzt werden? Ich hätte meine, ich komme zwischenzeitlich eigentlich ganz gut mit dem was mit WordPress zur Verfügung stellt zu Recht, aber als Anfänger kann es doch einfacher sein, wenn mir vielleicht sogar die IDE helfen kann, wenn ich wissen will, welche Events ich denn nun ansteuern kann.

    Ich weiß, wirklich ausgegoren ist die Idee noch nicht, aber wenn sie für gut erachtet wird, dann kann man ja vielleicht noch mal ein wenig Brainstormen, wir das System denn aussehen könnte.

    Nils Langner

    Auch wenn Ihr es mir nicht glauben werdet, aber ich habe nichts gegen PHP. Ich rege mich einfach nur gerne auf. Ok so schlimm ist es auch nicht. Eigentlich wollte ich schon immer einen Blog haben und da ...

    Zum Profil von Nils Langner

    14 Kommentare »


    • Ulf
      am 20. Mai 2010 um 07:58 Uhr

      Es gibt Zendpress was nicht anderes als die Funktionalität von WordPress aus Basis des Zend Frameworks sein soll(http://www.zendpress.org/). Ob das gut ist und gelingen mag, weiß ich aber nicht. Im Großen & Ganzen ist doch WordPress eh nur Marketing-Quatsch! ;)


    • Thomas
      am 20. Mai 2010 um 07:58 Uhr

      Im Grunde ist das eine sehr gute Idee, aber leider kann ich mir nicht vorstellen, dass das jemals genutzt wird.
      Der Grund ist einfach, dass Plugin-Entwickler nicht davon ausgehen können, das OOPwp überall installiert ist, und somit entweder einen Fallback auf die normalen wordpress-hooks einbauen oder OOPwp mit jedem Plugin mitliefern muss.
      Solange das nicht offiziell von künftigen WordPress-Versionen nativ unterstützt wird sehe ich da leider keine Zukunft…


    • Alex
      am 20. Mai 2010 um 08:47 Uhr

      Hm, gibts für WordPress nicht mittlerweile schon so ziemlich jede Erweiterung? Ich kann natürlich nicht in die Zukunft schauen, aber ich kann mir nicht vorstellen das es für die OOP-Schnittstelle reißende Downloadzahlen geben würde.
      Dann müsste es schon irgendwie direkten Support von den WordPress-Leuten geben um das dann nicht in deiner Schublade verstauben zu lassen.

      Aber wie gesagt, noch bin ich kein Hellseher ;-)


    • Norbert Bartels
      am 20. Mai 2010 um 09:46 Uhr

      Ich könnte mir vorstellen Plugins über das Event Collaboration Pattern – oder eine Abwandlung davon – anzubinden. Dann kann man diese vom Hauptsystem entkoppeln und nur die Events müssen bekannt sein.

      Ist aber nur so eine Idee in der Kaffeepause – also sicher nicht unbedingt die beste Lösung :D


    • Sven
      am 20. Mai 2010 um 10:02 Uhr

      Also ich stecke jetzt nicht so tief in WP drin. Aber man könnte doch eine Art Adapter bauen, der einem OO-Zugriff auf die wichtigsten Ressourcen und Events von WP gibt. Somit könnten Neulinge über diesen Adapter (der ja nix weiter als eine OO-Api darstellt) schnell und gezielt alle wichtigen Dinge ansteuern.


    • christian
      am 20. Mai 2010 um 10:06 Uhr

      Das Projekt der ehemaligen WordPress-Entwickler heisst übrigens Habari. (Ich hab’s mir allerdings noch nie angesehen…)


    • tim
      am 20. Mai 2010 um 11:47 Uhr

      ich arbeite recht viel mit WordPress, jedoch glaube ich kaum, dass ein solches Plugin genutzt werden würde. jedoch kann ich deinen Gedanken gut verstehen und habe auch schon mal drüber nachgedacht sowas zu implementieren.


    • christian
      am 20. Mai 2010 um 11:52 Uhr

      Über einen anderen Ansatz bin ich übrigens vorhin gestolpert: Man integriert einfach ein bestehendes Framework in WordPress. Eine funktionierende Implementation gibt es für Kohana V3: http://www.kerkness.ca/kohana-for-wordpress/

      Wie sehr die Kohana-Applikationen aber auf die Interna von WordPress zurückgreifen können, weiss ich nicht. Wesentlich schöner als direkten Zugriff auf die Datenbanktabellen wären schon gemeinsame Klassen.


    • ragtek
      am 20. Mai 2010 um 18:20 Uhr

      Wow.
      Bei Zendpress hat sich ja im Mai sogar etwas getan:D

      Zwar nichts nennenswertes, aber als ich die letzten Male ins Rep. geschaut habe, war dort tote Hose.


    • Timo Reitz
      am 20. Mai 2010 um 18:41 Uhr

      Aber was wäre denn der Vorteil für den Anwender? Wenn das OOP-Plugin nur die sowieso vorhandenen Schnittstellen kapselt, handelt es sich doch um nichts weiter als eine Indirektionsschicht ohne echten Mehrwert. Also eine zusätzliche Fehlerquelle, die die Performance senkt und sonst nichts macht.


    • schmiddi
      am 20. Mai 2010 um 20:02 Uhr

      Interessante Idee. Ich würde nach dem Adapterprinzip die WordPressfunktionalitäten kapseln.


    • KingCrunch
      am 20. Mai 2010 um 22:39 Uhr

      Is doch eigentlich mal wieder nur der Drang einzelner unbedingt alles in Klassen verpacken zu müssen. Ein prozeduraler Ansatz ist auch ein Design-Konzept und PHP — als Multiparadigmem-Sprach — untersützt es. Ich bezweifel das es Begeisterungsstürme auslöst.


    • MBa
      am 21. Mai 2010 um 21:46 Uhr

      Eigentlich eine schöne Sache. Etwas ähnliches habe ich auch mit anderen Systemen versucht…
      Fazit: Zu viel Aufwand, ein paar Fehlerquellen mehr, schwerer zu debuggen, da man nie weiß, welche Schnittstelle nun genutzt wurde.

      Dann habe ich dies gelesen…
      http://www.phphatesme.com/blog/softwaretechnik/dont-fight-the-framework/
      … und nun lasse ich es einfach sein, bzw. versuche so etwas halt sehr simpel zu halten.
      Ja, ich sehe ein CMS, Blog usw. als eine Art Framework an.


    • hakre
      am 25. Mai 2010 um 23:35 Uhr

      Das hatte ich auch schon mal versucht. Bei Interesse lasse ich dir den Quellcode zukommen. Hat ne Abstraktionsschicht für verschiedene WP Versionen gemacht. Aber das ist im Grunde aussichtslos, aber sicherlich nicht verkehrt mal damit zu experimentieren.

      Meine letzte Idee in der Richtung war, eine abstrakte Grundklasse zu generieren, diese als konkrete Plugin klasse zu erweitern. Die konkrete Klasse muss dann nur die im Interface festgelegten Schnittstellen benutzten um auf WP Core Funktionalitäten zuzugreifen (zB. Filter und Hooks durch Annotations um mal Spass zu haben), zugriffe auf Optionswerte etc. pp..

      Evtl gleich nen Set an Klassen für Backend-Pages, Widgets etc. pp. .

      Das wäre noch einigermassen Portabel, lediglich ein wenig doppelter Code wenn man mehrere Plugins der eigenen Sorte auf den Server bringt. Aber sicherlich schneller zu realisieren und stabiler auf Dauer. Ausserdem macht es den eigenen Code wesentlich besser wart- und testbar.

    RSS Feed für Kommentare zu diesem Artikel. TrackBack URL

    Hinterlasse einen Kommentar

    Werbung
    PHP Magazin
    Ausgabe 02/2010

    Dieses Mal mit Artikeln zu den Themen OpenSocial und Apache Shindig, Graphentheorie, Smarty3

    t3n
    Ausgabe 19

    Social Media (R)evolution. Weitere Themen sind noSQL, Crowdsourcing ...

    PHP Journal
    Ausgabe 2/2010

    PHP & Windows optimal nutzen, die besten PHP-CMS im Überblick, Google-API mit Zend Framework nutzen.

    Wir wurden schon öfters gefragt, ob man uns nicht irgendwie unterstützen kann. Die Antwort war immer einfach: Klar! Am einfachsten ist es eure nächsten Einkäufe bei Amazon über unsere Link abzuwickeln. Damit würdet ihr uns schon sehr helfen. Über Co-Autoren freuen wir uns aber noch mehr.