Wofür wir PHP einsetzen
Fast alles, was auf einem Server Entscheidungen trifft, schreiben wir in PHP. Dazu gehören Plugins für Shopware 6, Extensions für TYPO3, Themes und Erweiterungen für WordPress sowie eigene Anwendungen ohne fertiges System darunter. Der gemeinsame Nenner ist selten das Frontend, sondern die Logik dahinter: Preisberechnung, Berechtigungen, Freigaben, Importe, Exporte und alles, was nachts unbeobachtet durchlaufen muss.
Der zweite große Block sind Schnittstellen. ERP, PIM, CRM, Versanddienstleister, Zahlungsanbieter — jedes dieser Systeme spricht ein eigenes Format, und dazwischen liegt PHP-Code, der Daten abholt, prüft, umschreibt und weitergibt. Solche Strecken laufen jahrelang, deshalb zählt hier weniger Eleganz als Nachvollziehbarkeit: Fehler müssen sichtbar werden, Wiederholungen dürfen keine doppelten Bestellungen erzeugen, und ein Ausfall der Gegenseite darf nichts zerstören.
Wie wir mit PHP arbeiten
Wir schreiben PHP 8 mit strikten Typen, typisierten Eigenschaften, Enums und Attributen — also mit den Mitteln, die in PHP 7.4 und der 8er-Reihe dazugekommen sind — strikte Typen gibt es seit 7.0, typisierte Eigenschaften seit 7.4, Attribute seit 8.0, Enums seit 8.1. Abhängigkeiten verwaltet Composer, die Struktur folgt den PSR-Standards, damit fremder Code sich anfühlt wie eigener. Statische Analyse mit PHPStan läuft in der Pipeline, Tests entstehen mit PHPUnit, und für die Fälle, die man nicht erraten kann, gibt es Xdebug.
Entwickelt wird in Docker-Umgebungen, die der Produktion entsprechen — gleiche PHP-Version, gleiche Extensions, gleiche Datenbank. Das erspart die Diskussion, warum etwas lokal funktioniert. Versionssprünge planen wir früh: PHP-Versionen haben ein festes Ende ihrer Sicherheitsunterstützung, und ein Shop auf einer abgelaufenen Version ist kein technisches Detail, sondern ein Risiko. Ein sauber implementierter Unsinn ist trotzdem noch Unsinn — deshalb steht die Fachlichkeit vor dem Code.
Grenzen und Alternativen
PHP ist nicht für alles die richtige Wahl. Bei Datenanalyse, Bildverarbeitung und allem, was in Richtung maschinelles Lernen geht, nehmen wir Python, weil dort die Bibliotheken liegen. Im Browser läuft ohnehin JavaScript, meistens TypeScript. Für dauerhaft offene Verbindungen, etwa Chats oder Live-Updates mit vielen gleichzeitigen Clients, ist Node.js der ruhigere Weg — PHP kann das, aber es ist nicht sein Naturell.
Der zweite Punkt betrifft den Ruf der Sprache. „PHP ist keine ernsthafte Sprache“ ist ein Urteil über PHP 5, das seit Jahren weitergereicht wird, ohne noch einmal nachgesehen zu haben. Typen, Enums, Attribute und eine Laufzeit, die seit PHP 7 um ein Vielfaches schneller ist, haben die Grundlage dieses Satzes entfernt. Umgekehrt gilt: schlechter PHP-Code ist weiterhin möglich — nur liegt das dann nicht an der Sprache.