Articles with the tag Micro Services

"PHP-Projekte in Mini Apps aufteilen: Micro Services mit Kompromissen"


Ich möchte in diesem Artikel gerne einen Ansatz vorstellen, um komplexere Projekte etwas zu modularisieren. Mit komplex meine ich vor allem solche, die verschiedene Komponenten von Drittanbietern verwenden, auf die man vielleicht selbst nicht direkten Einfluss hat. Probleme bei solchen Projekten können sein:

  • Sie "passen" nicht zu dem im Hauptprojekt verwendeten Framework, nutzen z. B. ein eigenes Mini-Framework, das die Code-Menge nochmal erheblich erhöht.
  • Es entstehen Abhängigkeitskonflikte, oder die Komponente hindert uns daran, für unser Code die neuste Version einer Library zu verwenden.

Als praktisches Beispiel:

  • Das eigentliche Projekt ist eine komplexe Website auf Basis des Zend Frameworks
  • Für die Dateiverwaltung auf dem Server wollten wir einen bestehenden Filemanager verwenden. Dieser bietet ein composer package, und einen Front controller (index.php Datei), die man an einem beliebigen Ort, z.B. unter /fileadmin installieren sollte.
  • Dummerweise verwendet der Filemanager das Symfony Framework
  • Für unsere App haben wir zusätzlich zum ZF noch die symfony/filesystem Komponente eingebunden.

Soweit funktioniert alles. Nun möchten wir aber das neuste Feature der Filesystem Komponente nutzen, wir erhöhen also in unserer composer.json Datei die Version von symfony/filesystem. Beim anschließenden composer update dann die Überraschung: Geht nicht, unser Filemanager benötigt eine andere Version. Abhängigkeitskonflikt.