Alle Projekte

Portfolio · Case Study

PatchPub: Zentrale Verwaltung und Anwendung von Composer-Patches für PHP-Projekte

Laravel-Plattform für zentrale Composer-Patches: Regex- und Diff-Patching, GitHub-PR-Import, git-diff-Vorschau und automatische Prüfung neuer Paket-Versionen.

LaravelAPIPerformanceLaravel LivewireGitCloudflare R2

PatchPub ist eine Laravel-basierte Plattform für die zentrale Verwaltung und Anwendung von Patches für PHP-Composer-Pakete. Sie ermöglicht es Entwicklern, eigene Fixes oder Features direkt auf Drittanbieter-Pakete anzuwenden, unabhängig davon, ob diese bereits upstream gemerged wurden. Mit PatchPub lassen sich gezielte Änderungen an Abhängigkeiten effizient, nachvollziehbar und versionssicher verwalten. Mit Funktionen wie Regex-Patching, Git-Diff-Vorschauen und dem Import von GitHub Pull Requests schliesst die Plattform eine wichtige Lücke im Composer-Ökosystem.

Kernfunktionen und Architektur

Technische Basis

  • Laravel + Laravel Livewire: Die Admin- und Benutzeroberflächen sind mit Livewire umgesetzt und bieten eine reaktive, nahtlose Browser-Erfahrung.
  • SQLite für blitzschnellen Datenzugriff: Interne Datenabfragen sind mit SQLite auf Geschwindigkeit optimiert, ideal für leichtgewichtige und mittelgrosse Patch-Management-Workflows.
  • Cloudflare R2: Alle relevanten Patch-Daten und Dateiversionen werden in Cloudflare R2 gespeichert, für maximale Zuverlässigkeit und Unabhängigkeit von der App-Infrastruktur.

Leistungsfähige Patch-Funktionen

Flexible Bearbeitungsoptionen für beliebige Dateien (inkl. composer.json):

  • Einfaches Suchen und Ersetzen von Text
  • Regex-basierte Ersetzungen
  • Klassische Diff-Patch-Anwendung
  • Vollständiger Dateiaustausch
  • Verkettung mehrerer Operationen in definierter Reihenfolge

Automatisiertes Patch-Management

  • GitHub-PR-Import: Öffentliche GitHub Pull Requests lassen sich direkt als Patches in PatchPub übernehmen.
  • Vorschau per git diff: Ein vollständiger visueller Diff vor dem Anwenden von Änderungen sorgt für Transparenz und Kontrolle.
  • Validierung von Änderungen: Alle Operationen werden vorab validiert, um fehlerhafte Patch-Anwendungen zu verhindern.
  • Asynchrone Hintergrundverarbeitung (Queues): Patch-Anwendungen und Updates, insbesondere bei neuen Versionen von Abhängigkeiten, laufen im Hintergrund, sodass die Benutzeroberfläche jederzeit reaktionsschnell bleibt.

Benachrichtigungen und Monitoring

Automatische E-Mail-Benachrichtigungen informieren Benutzer, wenn Patches aufgrund inkompatibler Änderungen in neuen Versionen fehlschlagen (z. B. bei veränderten Quelldateien). So kann proaktiv auf veraltete oder defekte Patches reagiert werden.

Anwendungsfälle

  • Anwendung eigener Bugfixes oder Features auf Drittanbieter-Pakete
  • Temporäre Hotfixes, ohne Abhängigkeiten forken zu müssen
  • Wiederverwendbare Patch-Sets für Teams oder Organisationen
  • Automatische Patch-Updates bei neuen Versionen
  • E-Mail-Benachrichtigungen bei fehlgeschlagenen Patches