Brauchst du einen Experten, der dir bei deinem Symfony- oder PHP-Entwicklungsprojekt hilft? Fordere jetzt ein Angebot an

Logo Yuka

Yuka: ein gesundes, ausgewogenes Symfony-Upgrade

Yuka, ein führendes Unternehmen im Bereich globaler Gesundheitsanwendungen, führte mit Unterstützung von SensioLabs ein Upgrade von Symfony 4 auf 7 durch, um die Funktionen zu optimieren und technische Schulden zu verringern. Erfahre mehr über die Erfolgsgeschichte von Yuka mit Symfony.

A phone with the Yuka application in the hands of a consumer at the supermarket

Das Unternehmen: Yuka

Yuka ist eine mobile App für iOS und Android, die Verbrauchern dabei hilft, die Etiketten von Lebensmitteln und Kosmetikprodukten zu verstehen. So können sie die besten Entscheidungen für ihre Gesundheit und die Umwelt treffen.

Per Scan erhalten sie eine schnelle, leicht verständliche Bewertung in Form eines Farbcodes von grün bis rot. Ein ausführliches Informationsblatt erläutert die Bewertung des jeweiligen Produkts sowie die berücksichtigten Kriterien wie Nährwerte und Zusatzstoffe. Yuka ist eine kollaborative Anwendung: Die Nutzer sind eingeladen, zur Datenbank beizutragen, indem sie unbekannte Produkte hinzufügen.

Yuka verfügt derzeit über Informationen zu mehr als fünf Millionen Produkten. Yuka ist kostenlos und in Frankreich sowie in zwölf weiteren Ländern, hauptsächlich in Europa und Nordamerika, verfügbar. Weltweit nutzen über 68 Millionen Menschen die App, und jede Sekunde werden über 70 Produkte von Yuka gescannt. Yuka ist ein „Tech for Good“-Unternehmen und ein wachstumsstarkes Start-up, das Verbrauchern dabei hilft, bessere Entscheidungen für ihre Gesundheit und den Planeten zu treffen.

Die Herausforderung

Trotz der starken Verbreitung der App hat Yuka nur ein kleines Team, das für die tägliche Verwaltung und Verbesserung dieses umfangreichen Projekts mit seinen vielen Produkten und Sprachen verantwortlich ist. Das technische Team besteht aus fünf Mitgliedern, darunter zwei der Mitbegründer. Sie übernehmen die volle Verantwortung für den technischen Betrieb der Anwendung.

Yuka setzt von Anfang an Symfony für die Verwaltung der Datenbank und des Backends ein, zusammen mit einer EasyAdmin-Administrationsschnittstelle und einer benutzerdefinierten API. Die mobile Anwendung, die für iOS und Android verfügbar ist, ist direkt mit der Symfony-Anwendung verbunden.

Bis vor kurzem nutzte Yuka noch Symfony Version 4 und EasyAdmin 1, ohne diese zu aktualisieren. Diese Versionen waren veraltet. Das bedeutete, dass Yukas Anwendung nicht von neuen Symfony-Funktionen profitierte und in dieser Version aufgetretene Fehler nicht behoben wurden. Die Verwendung von EasyAdmin 1 stellte zudem eine große Herausforderung für das Upgrade dar. EasyAdmin musste in Abstimmung mit Symfony aktualisiert werden. Dadurch nahmen die technischen Schulden ebenso wie die Sicherheitsrisiken zu.

Um die Best Practices von Symfony einzuhalten, wurde die Aktualisierung der Version schnell zur Notwendigkeit.

Das technische Team von Yuka war jedoch zu klein, um den großen Versionssprung durchzuführen und gleichzeitig die Anwendung täglich zu verbessern. Aus diesem Grund benötigte Yuka die Unterstützung von Symfony-Experten. Gleichzeitig entwickelte das technische Team von Yuka die mobile Anwendung weiter.

Die Geschichte

Yuka hat seine Entwicklungspraktiken grundlegend überarbeitet und dabei die Leistungsfähigkeit und Flexibilität der neuesten Symfony-Versionen genutzt. Ursprünglich basierte Yuka auf Symfony 4 mit EasyAdmin 1. Im Laufe der Zeit wurde die Anwendung schrittweise auf die Versionen 5 und 6 und schließlich auf Version 7 aktualisiert, während EasyAdmin parallel dazu auf Version 4 aktualisiert wurde. Die Versions-Upgrades umfassten auch den Übergang von PHP 7.4 auf 8.3 sowie die Aktualisierung von Doctrine von Version 2 auf Version 3.

Dank des bewährten Know-hows der SensioLabs-Experten konnten diese Upgrades in der richtigen Reihenfolge und gemäß den Best Practices durchgeführt werden.

Die Umstellung auf die neuesten Versionen von Symfony und EasyAdmin erforderte ein umfangreiches Code-Refactoring, vor allem aufgrund der sich ändernden Standards und der Notwendigkeit, die EasyAdmin-Anpassung zu modifizieren.

Neben den Versions-Upgrades wurden mehrere Maßnahmen durchgeführt.

  • Einführung von Continuous Integration (CI)

  • Standardisierung der Praktiken mit PHPStan, Rector und PHP-CS-Fixer.

  • Die Abdeckung durch Testszenarien wurde erhöht und verbessert.

Um sicherzustellen, dass der Code der Anwendung stets von hoher Qualität ist und langfristig gut funktioniert, wurden außerdem regelmäßige Code-Reviews und Non-Regression Tests eingeführt.

Das Upgrade bot nicht zuletzt die Gelegenheit, einen Beitrag zu Open Source zu leisten – in einem äußerst anregenden Geist des Austauschs mit der Gemeinschaft. Zu den Open-Source-Beiträgen gehörten Bundles von Drittanbietern, darunter das NzoUrlEncryptorBundle, das kreait/firebase-Bundle, das Algolia/search-Bundle und das EasyAdminBundle. Durch diese Verbesserungen konnten die technischen Schulden verringert und Funktionen hinzugefügt werden, die für die Aktualisierung von Versionen wichtig sind.

Die Vorteile

Yuka wird noch viele Jahre von den Innovationen von Symfony 7 profitieren.

Dank der Versions-Upgrades ist es nicht notwendig, den gesamten Code neu zu schreiben, um auf dem neuesten Stand zu bleiben. Yuka hat seine Codebasis aktualisiert, um sich an die neuen Funktionen von Symfony und PHP anzupassen. Dank der Abwärtskompatibilitätslogik von Symfony wird die Anwendung in Kürze auf die Long-Term-Support-Version Symfony 7.4 aktualisiert, die bis Ende 2028 gepflegt wird.

Die technischen Schulden konnten reduziert werden.

Dank der Versions-Upgrades und des Code-Refactorings konnte Yuka seine technische Verschuldung erheblich reduzieren. Für François Martin, Mitbegründer und CTO von Yuka, war es wichtig, „nicht auf einer veralteten Version sitzen zu bleiben”. Mit Symfony 7 ist die Backend-Wartung einfacher, Sicherheits-Patches sind aktuell verfügbar und es ist leichter, Entwickler mit Erfahrung in aktuellen Versionen des Frameworks zu rekrutieren.

Die Leistung von Yuka ist jetzt auf höchstem Niveau.

Zusammen mit dem Versions-Upgrade hat die Änderung des Codes dazu geführt, dass viele Abfragen gecached werden können. Dadurch konnte die Anzahl der für die Suche nach Millionen von Produkten erforderlichen Algolia-Abfragen verringert werden.

Benötigst du ein Update deiner Symfony-Anwendung auf eine neuere Version?

Mach es wie Yuka und aktualisiere die Version deiner Symfony-Anwendung. So verbesserst du Leistung und Sicherheit und kannst die neuesten Symfony-Innovationen nutzen.

Das könnte dich auch interessieren

Toy factory production line

Symfony-Tests mit Zenstruck Foundry auf das nächste Level bringen

Zenstruck Foundry hat die Art und Weise, wie wir Tests in Symfony schreiben, revolutioniert. In diesem Beitrag erfährst du, wie uns ausdrucksstarke Factories, isolierte Testdaten und ein reibungsloseres Entwicklererlebnis dabei geholfen haben, unseren Test-Workflow zu optimieren und die Produktivität zu steigern.

Photo speaker meetup AI Symfony

Symfony und AI: das Video ist jetzt verfügbar

Was ist mit Symfony und Artificial Intelligence (AI)? Dies war das Thema der exklusiven Veranstaltung, die von SensioLabs in Zusammenarbeit mit Codéin am 3. Oktober organisiert wurde. Mit dem zusätzlichen Bonus des Feedbacks aus einem Entwicklungsprojekt, das Symfony und AI kombiniert. Falls du die Veranstaltung verpasst hast, schau dir das Video an, das jetzt kostenlos auf unserem Youtube-Kanal verfügbar ist.

2025 a year of celebrations for PHP with windows about API Platform, PHP, AFUP and Symfony

2025: Das Jahr der Jubiläen für PHP, AFUP, Symfony und API Platform

2025 wird ein großes Jubiläumsjahr. Wir feiern 20 Jahre Symfony, 30 Jahre PHP, 25 Jahre AFUP und 10 Jahre API Platform. Für SensioLabs ist dies ein wichtiger Meilenstein, der die Langlebigkeit der Technologien in unserem Ökosystem beweist. Wir sind stolz darauf, diese Jubiläen das ganze Jahr über mit der Community zu feiern.

Image