Ist WordPress Bashing ein Zeichen von PHP Expertise?

Heute soll es einfach mal über meine ganz persönliche Meinung als PHP Freelancer mit nun über 15 Jahren Erfahrung gehen. Ich, der nun schon lange Enterprise Software mit gängigen oder eigens programmierten PHP Frameworks realisiert, möchte heute mal eine Lanze für WordPress brechen.

Über Nacht wurde WordPress 6.0 veröffentlicht. Das Release beinhaltet über 500 kleine und große Neuerungen unter der Haube. Es wurden über 400 kleine und große Bugs gefixt. Mit ein Grund, warum ich in diesem Artikel auf die vorherrschende Meinung von selbsternannten PHP Experten eingehen möchte, dass WordPress der größte anzunehmende Unfall in der PHP Geschichte ist.

Also wir reden schon noch von diesem WordPress, welches eine sehr beeindruckende Geschichte hat. Seit 2004 eines der meist benutzten PHP CMS Systeme. Eine erstaunliche Weiterentwicklung in puncto Funktionalität und eine äußerst lebendige Community. Nicht zu vergessen, dass WordPress einen großen Teil zur Popularität von PHP beigetragen hat. Selbst dieser Blog hier läuft seit 2008 verlässlich mit WordPress.

Vor ein paar Tagen fragte jemand in einer Facebook Gruppe nach PHP Entwicklern mit professionellem Know How im WordPress Bereich. Der Wortlaut lautete „WordPress Experten“. Das zu erwartende Dilemma mit einer solchen Suchanfrage ließ nicht lang auf sich warten.

Es gibt PHP Experten die WordPress machen? Das halte ich für ein Gerücht!

https://www.facebook.com/groups/541573902551290/posts/7341202002588412

Es gab noch viele weitere unqualifizierte Kommentare, die mich wirklich beschäftigt haben. Seit wann zeugt es von großer PHP Expertise, wenn man WordPress schlecht redet? Dieses Phänomen kann man seit nun mehreren Jahren beobachten und mittlerweile frage ich mich mehr und mehr, was dieser Unsinn eigentlich soll?

Fragt man nach den Gründen einer solchen Meinung wird oft angeführt, dass WordPress ja gar nicht objektorientiert sei. Es wäre nicht testbar. Statische Code Analysen würden immense Probleme aufdecken und sowieso sei WordPress eine einzige große Sicherheitslücke. Ja, diese Kritik hat sicherlich ihre Daseinsberechtigung. Sie ist aber genau so oberflächlich wie übertrieben.

Ja, WordPress ist nicht objektorientiert programmiert. Immer noch nicht. Wird es aus aktueller Sicht auch niemals sein. Es gab das große Refactoring nach Einführung von PHP 5 und der damit einhergehenenden Möglichkeit auch mit PHP objektorientiert programmieren zu können einfach nicht. Die Frage, ob man WordPress umstellen sollte, wurde vor Jahren heiß diskutiert. Man entschied sich aber seitens der Entwickler mit gutem Grund dagegen. WordPress‘ erste stabile Version gab es bereits 2004 und hat sich gerade wegen seiner eher einfachen Code Basis so weit verbreitet. Man muss kein PHP Experte sein, um WordPress für sich individuell anpassen zu können. Das war und ist ein riesiger Vorteil von WordPress. Der KISS Grundsatz (keep it simple and stupid) hat einen großen Anteil daran, dass WordPress so erfolgreich ist.

Ja, man mag meinen, dass statische Code Analyzer, wie z.B. PHPStan, riesige Probleme mit der WordPress Kernsoftware aufdecken würden. Wenn man bedenkt, dass es einfach der Job von solchen Analyse Tools ist Problemstellungen im Code aufzudecken, ist das doch einfach gut so. Beachtet man darüber hinaus, dass WordPress prozeduraler PHP Code ist, der seit 2004 gewachsen ist, kann ich an der aktuellen Analyse der Code Basis (Zeitpunkt dieses Artikels: 26. Mai 2022) keinen groben Unfug erkennen. Wenn man bedenkt, dass PHPStan vor ein paar Jahren noch nicht in der Lage war mit WordPress umzugehen, wurde hier auch einiges unternommen. Mittlerweile gibt es sinnvolle Erweiterungen, die uns Entwicklern sehr helfen. Katastrophale statische Code Analysen sind aus meiner Sicht eher ein Mythos, der aus reiner Ignoranz oder Unkenntnis heraus entstanden ist.

Ja, man kann Unit Tests auch mit WordPress machen, obwohl es prozeduraler PHP Code ist. Die Kritik, dass WordPress nicht testbar sei, zeigt mal wieder, wie sehr diese selbsternannten PHP Professionals daneben liegen. Selbst wenn der Beweis erbracht ist, dass Unit Tests mit WordPress kein Problem sind, wird gesagt, dass es mit WordPress niemals eine Testabdeckung von 100% geben wird. Ich lehne mich mal ganz weit aus dem Fenster und frage mich an dieser Stelle, welches Unternehmen dieser Welt eine vollständige Testabdeckung bezahlen möchte? Niemand hat eine Testabdeckung von 100%. Ja, kann man machen. Dauert aber ewig und ist schlichtweg unwirtschaftlich. Außer Du bist ein kleiner Troll in einem Keller ohne Tageslicht und programmierst schon seit Jahren an Deiner kleinen Website, die dann eine Testabdeckung von 100% haben wird. Über Anti-Argumente dieser Art ärgere ich mich am meisten, weil sie so weit weg von der Realität sind.

Ja, es gab und gibt immer wieder Sicherheitslücken in und um WordPress. Schließlich handelt es sich hier um eine lebende Software mit einer großen Community. Seit Jahren ist aber bekannt, dass das Gros der Sicherheitslücken aus dem Bereich der angebotenen Plugins stammt. Aus meiner Sicht verhält es sich hier nicht anders als mit Packages oder Repositories, die ich mir mittels Composer in mein Projekt hole. Auch hier kämpft man mitunter mit der gleichen Problematik. Nur ist der Aufschrei hier nicht so groß, weil sich hier, ähnlich wie bei WordPress auch, schlaue Köpfe dran setzen, um Sicherheitsproblematiken und Bugs zu fixen. Zudem ist es wie mit jeder weit verbreiteten Software. Bin ich groß, bin ich im Fokus derer, die Lücken finden möchten. WordPress reiht sich hier nahtlos in eine ganze Reihe von großer Software ein: Windows, PHP selbst, so ziemlich alle PHP Frameworks … man könnte die Reihe endlos fortsetzen. Am Ende wird man sich hoffentlich wieder daran erinnern, dass es keine wirklich zu 100% sichere Software gibt. Das, was heute als sicher galt, ist morgen schon überholt. Es ist ein Entwicklungsprozess, an dem auch WordPress als Software teilnimmt.

Am Ende stehen immer nur persönliche Empfindlichkeiten von PHP Entwicklern, die prozeduralen PHP Code, der vollkommen legitim und funktional ist, aus ganz persönlichen Gründen nicht gut finden. Aus einem Moment der objektorientierten Überheblichkeit wird gebasht, was das Zeug hält. Ist das gut? Ja, kann man machen. Sagt dann aber leider auch sehr viel mehr über den Entwickler als über WordPress aus. Ein respektvollerer Umgang miteinander wäre wünschenswert. Ein bisschen Demut vor der Historie von PHP selbst und darauf basierender Software. Vor PHP 5 war alles prozedural. Das PHP es heute immer noch kann, ist absolut legitim.

Mal eine Frage zum Schluss: Wieso bist Du besser, wenn Du Dich mit objektorientiertem PHP sehr gut auskennst und all diese wunderbaren Tools nutzen kannst, aber prozeduralen Code nicht mehr verstehst?

Just my two cents …

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.