legacy · php, zend framework, mysql
PHP und MySQL: eine Zend-Framework-Plattform, die bis heute läuft.
Viele Jahre war ich im Kernteam eines Restaurantführers für Deutschland und des Backoffices, mit dem seine Restaurants arbeiten. Die Plattform gehört einem Anbieter von Gastro-Software und basiert auf PHP, Zend Framework und MySQL. Neue PHP-Projekte nehme ich derzeit nicht an.
- Stack
- PHP, Zend Framework, MySQL
- Plattform
- Restaurantführer und Backoffice für Restaurants
- Meine Rolle
- Viele Jahre im Kernteam
- Status
- Bis heute live
- Daneben
- Node.js- und NestJS-Services auf derselben Datenbank
- Neue PHP-Projekte
- Derzeit nicht
Was die Plattform macht
- Für Gäste: ein Restaurantführer für Deutschland, mit Restaurantseiten, Bewertungen, Fotos, Speisekarten, Events und Seiten für jede Stadt und Region.
- Für Restaurants: ein Backoffice mit Tischreservierungen, Wertgutscheinen und Event-Tickets, einem Speisekarten-Baukasten, einem Website-Baukasten mit eigener Domain, einer White-Label-App mit Push-Nachrichten, Gäste-Feedback, Statistiken und einer monatlichen Abrechnung.
- Für Apps und Partner: eine API für die mobilen Apps und die Widgets auf den Websites der Restaurants.
Ein altes System am Leben halten
Über all die Jahre hielt eine lange Reihe kleiner Schritte die Plattform am Laufen: Upgrades auf neue PHP- und MySQL-Versionen, Updates des Frameworks, ein Umzug in die Cloud und langsame Abfragen, die wieder schnell wurden. Neu geschrieben werden musste sie nie.
Neue Services neben der alten Plattform
Die neueren Produkte des Anbieters sind eigene Services auf derselben MySQL-Datenbank. Die Reservierungs-App spricht mit einem Node.js-Backend, der WhatsApp-KI-Assistent ist ein NestJS-Backend. Eine Reservierung über WhatsApp landet so am selben Ort wie jede andere.
Diesen Weg würde ich für jedes alte System vorschlagen, das seine Arbeit noch tut: Es bleibt, wo es ist, und das Neue entsteht daneben, auf denselben Daten.
Häufige Fragen
Übernehmen Sie PHP-Projekte?
Derzeit nicht, weder Neuentwicklungen noch bestehende PHP-Anwendungen. Neue Backends baue ich mit NestJS und Postgres.
Kann ein neuer Service mit unserer bestehenden MySQL-Datenbank arbeiten?
Ja. Ich baue den neuen Service mit NestJS und binde ihn an die Datenbank an, die Sie schon haben. So arbeitet auch der WhatsApp-Assistent mit dieser Plattform. Der PHP-Code bleibt bei Ihrem Team.
MySQL oder Postgres?
Postgres für alles Neue, weil es auch Queues und Vektorsuche übernimmt. Eine bestehende MySQL-Datenbank bleibt, wo sie ist, und neue Services docken an sie an.