

Backend-Entwickler in großen Projekten
Als Freelancer in großen Projekten bin ich an Teamarbeit gewöhnt. Nicht zu unterschätzen finde ich dabei die sozialen Skills: gemeinsam Projektvorgaben machen und sich daran halten, Kompromissbereitschaft zeigen und Wert auf Kommunikation legen.
Hilfreich ist der Umgang mit den typischen Projekt-Management-Tools: Teamware wie Microsoft Teams, Ticketsysteme wie Jira und Confluence, agiles Arbeiten in Sprints, mit Code-Reviews und Release-Management. Ähnliche Tools begegnen einem in jedem Projekt und sie zu benutzen freut den Projektleiter.
Auf der technischen Seite ist natürlich Versionsverwaltung mit Git sehr wichtig: Branching-Strategien mit Feature-Branches, Development- und Main-Branch, Zusammenführung durch Merge-Requests. Viel benutzt wird Gitlab, um den Code übersichtlich online zu verwalten.
Drupal
Mit dem mächtigen Content-Management-System Drupal arbeite ich seit 2007. Von Version 5 bis Version 11 wurden alle in Projekten eingesetzt. Die umgesetzten Projekte sind enorm zahlreich und vielfältig sowohl bezüglich Größe als auch Anwendungsfall. Zwischen 2007 und ca. 2012 war ich sehr aktiv in der Drupal Community.
In der Arbeit mit einem großen Content-Managment-System wie Drupal sammelt man sehr viel spezifisches Wissen. Ein großer Bereich ist das z.B. Einspielen von Sicherheits- und Feature-Updates und natürlich das Upgrade auf die nächsten Major-Versionen, wobei vor allem Erfahrung wichtig ist, es gibt immer wieder spezielle Dinge zu beachten.
Coding mit Drupal
Essenziell finde ich die gute Kenntnis der systemeigenen APIs. Drupal bietet hier sehr viel an, wenn für spezifische Anforderungen Coding verlangt ist. So z.B. das ganze Field- und Entity-System, das Plugin-System, die Layout API, das Migrate-Framework, das Theme-Layer mit TWIG, jede Menge Hooks und die verschiedenen Optionen für Datenbank-Queries. Durch Einsatz von Best Practices kann ich den Code so übergeben, dass auch spätere Entwickler sich gleich gut zurechtfinden.
There's a module for that!
In solch einer langen Zeit habe ich ebenfalls eine gute Kenntnis der sehr zahlreichen Erweiterungsmodule gesammelt. Das ist gerade bei Drupal mit seinem Meta-Coding-Ansatz sehr wichtig. "There's a module for that!" ist oft die Lösung, bevor man anfängt etwas selber zu programmieren. Wenn es mehrere Alternativen gibt, ist es wichtig zu wissen, welche am besten gepflegt werden und quasi die "offizielle Wahl" sind.
Symfony
Für Projekte, bei denen es nicht primär um Content Management geht, ist Symfony ein wunderbares Framework. Meine Wahl ist darauf gefallen aufgrund seiner hohen Reputation und Flexibilität. Seit 2021 verwende ich Symfony für Projekte. Grundlage sind moderne Prinzipien und Best Practices. Ich bin vertraut mit Symfonys Komponenten z.B. für Sicherheit/Authentication, dem Messenger, Caching, HTTP-Requests und Routing, TWIG und selbstverständlich Doctrine.
Symfony ermöglicht es, "reines" PHP zu schreiben oder optional die hervorragenden Komponenten und Bundles zu benutzen. Abhängig davon, ob es auf eine maximal individuell angepasste Umsetzung ankommt oder die Arbeits- und Zeitersparnis im Vordergrund steht. Die endlosen Möglichkeiten der Plattform bringen die Programmiersprache PHP im besten Licht zum Leuchten.
PHP
Die Gelehrten streiten sich, was denn nun die besten Programmiersprache für Webentwicklung ist. Meiner Ansicht nach kommt es eher auf die Entwickler und die Architektur an.
PHP kann auf der Habenseite auf seine enorme Verbreitung und Verwendung in den größten CMS-Systemen verbuchen sowie das Vorhandensein von zahllosen freien Bibliotheken für fast jeden Anwendungsfall. Für das Hosting gibt es für jeden Geldbeutel vielfältige Optionen - PHP ist auf fast jedem Server verfügbar.
Evolution
Die Sprache PHP hat eine bemerkenswerte Entwicklung hingelegt. Früher oft kritisiert wegen fehlender Features für "ernsthafte" Architektur, kann man heute sauber typisiert und objektorientiert entwickeln. Trotz der Ausführung zur Laufzeit hat sich die Performance immer weiter verbessert.
Ich bin diese Entwicklung mitgegangen: 2007 angefangen damit, nur kleine Schnipsel zu verwenden, entwickle ich heute auch größere Anwendungen und arbeite nach modernen Methoden mit Unit Testing, Domain-driven Design und SOLID Principles.
Durch Composer und die generell sehr kollaborativ eingestellte PHP-Community muss und sollte man nicht alles selber bauen, aber man kann, wenn man will.