notiziephp.it

Case Study: Scansionare per la qualità: come Yuka alimenta scelte sane su scala globale con Symfony (Symfony Blog)

Traduzione da Symfony Blog
23 Settembre 2026 Tempo di lettura: 5 minuti
Case Study: Scansionare per la qualità: come Yuka alimenta scelte sane su scala globale con Symfony (Symfony Blog)

Yuka è un leader globale nella trasparenza sanitaria e ambientale. Disponibile su iOS e Android, la sua applicazione mobile aiuta oltre 68 milioni di consumatori in tutto il mondo a decifrare istantaneamente le etichette degli alimenti e dei cosmetici. Con un team tecnico snello di appena cinque persone, tra cui due co-fondatori, Yuka gestisce un enorme database di oltre 5 milioni di prodotti, sostenendo un carico di traffico intenso di più di 70 scansioni di prodotti ogni singolo secondo. Per scalare questa realtà Tech for Good senza gonfiare i costi di ingegnerizzazione, Yuka si affida a Symfony come fondamento del proprio back-end.

La dieta ad alta crescita: 70 scansioni al secondo su un back-end snello

Operando a livello globale in 13 paesi, l'app mobile di Yuka funge da client diretto per il consumatore, che comunica in modo nativo con un'API Symfony personalizzata. L'applicazione restituisce un semplice rating codificato a colori (dal verde al rosso) insieme a valutazioni nutrizionali approfondite, istantaneamente al momento della scansione del codice a barre.

Quando la tua applicazione gestisce 70 cicli di richiesta al secondo, qualsiasi latenza nell'hydration dei dati o nell'esecuzione del controller si ripercuote sulla frustrazione dell'utente. L'HTTP kernel altamente ottimizzato di Symfony e i suoi flessibili livelli di astrazione per la cache sono diventati risorse cruciali. Durante la recente modernizzazione, il team ha rifattorizzato gli endpoint principali dell'API per mettere in cache payload complessi del database. Integrando i meccanismi di caching nativi in modo trasparente all'interno della business logic, Yuka è riuscita a ridurre al minimo le costose e ripetute query al proprio indice di ricerca Algolia. Questo ha stabilizzato direttamente le prestazioni del back-end su milioni di prodotti unici, riducendo significativamente i costi di infrastruttura esterna.

"Per un team delle nostre dimensioni, restare indietro su dipendenze obsolete è un rischio che non potevamo permetterci. Il passaggio a Symfony 7 ha dimostrato che non serve un enorme reparto di ingegneria per gestire un'app su scala globale: serve semplicemente la giusta architettura di framework." — François Martin, co-fondatore e CTO di Yuka

L'upgrade pulito: saltare da Symfony 4 a Symfony 7

Mentre l'applicazione cresceva rapidamente, l'architettura core è rimasta legata a Symfony 4, EasyAdmin 1 e PHP 7.4. Pur essendo altamente stabile, questo stack legacy ha creato un debito tecnico crescente: il team ha perso le ottimizzazioni di performance del PHP 8+ moderno, le patch di sicurezza si avvicinavano all'end-of-life e reclutare nuovi talenti su un codebase datato diventava sempre più complesso.

Per superare questo collo di bottiglia, Yuka ha collaborato con gli esperti del framework di SensioLabs per orchestrare un aggiornamento sistematico delle major version. L'applicazione è stata migrata in modo incrementale attraverso Symfony 5 e 6, approdando infine in modo pulito su Symfony 7. Il livello di astrazione del database è stato contemporaneamente portato da Doctrine ORM 2 alla versione 3, e l'ambiente di runtime è passato a PHP 8.3.

[Symfony 4 / PHP 7.4] ──> [Symfony 5 & 6] ──> [Symfony 7 / PHP 8.3]

Per gestire gli ampi cambiamenti strutturali e le personalizzazioni del back-office richieste nel passaggio da EasyAdmin 1 a EasyAdmin 4, il team di ingegneria ha automatizzato la conformità del codice introducendo un moderno toolkit per sviluppatori:

  • Rector & PHP CS Fixer: refactoring automatico dell'abstract syntax tree (AST) per riscrivere le chiamate ai metodi deprecati e applicare gli standard di stile.
  • PHPStan: analisi statica rigorosa introdotta per individuare mismatch nei type-hint e regressioni nascoste prima del runtime.
  • Continuous Integration: pipeline di test CI automatizzata e robusta per salvaguardare i contratti degli endpoint API durante gli aggiornamenti del linguaggio.

Poiché Symfony mantiene standard rigorosi di backward compatibility lungo i suoi cicli di rilascio, questo percorso di modernizzazione garantisce a Yuka di poter passare facilmente a Symfony 7.4, la release Long-Term Support (LTS), assicurando supporto operativo e patch di sicurezza fino alla fine del 2028.

Restituire alla community: carburante Open Source per l'ecosistema

Per Yuka, costruire su Symfony non è una strada a senso unico. Il processo di aggiornamento si è basato in larga misura su una relazione altamente collaborativa con la community open source. Risolvere i vincoli di versione per applicazioni mobile ad alto throughput richiede spesso di estendere i package dell'ecosistema. Lungo tutto il processo di upgrade, Yuka e gli esperti di SensioLabs hanno contribuito direttamente con feature, patch di compatibilità e bug fix a diversi package di terze parti vitali, tra cui:

Scegliendo una base architetturale open source, Yuka non si è limitata a risolvere il proprio debito tecnico: il team di ingegneria ha attivamente arricchito l'ecosistema PHP globale, dimostrando che le aziende Tech for Good possono guidare direttamente gli strumenti open source su cui si basano.

Una visione condivisa per un mondo digitale e fisico migliore

In definitiva, la collaborazione tra Yuka e Symfony affonda le radici in un profondo allineamento di valori. Yuka è fondamentalmente un'azienda Tech for Good, che consente a milioni di cittadini di fare scelte informate e più sane per il proprio corpo e per il pianeta attraverso la trasparenza. Symfony opera con una filosofia parallela nello spazio digitale, promuovendo software open source, trasparenza, collaborazione collettiva e democratizzazione della tecnologia ad alte prestazioni.

Quando un'app di consumer advocacy di primo piano scala globalmente su un framework aperto, dimostra che costruire un mondo fisicamente più sano è del tutto possibile coltivando un mondo digitalmente sostenibile e collaborativo. Lavorando insieme per migliorare sia la qualità del codebase sia i package dell'ecosistema, Symfony e Yuka dimostrano che la tecnologia raggiunge il suo potenziale più alto quando serve il bene comune.

Grazie a François Martin, co-fondatore e CTO di Yuka, e al team di ingegneria di SensioLabs.

Stack tecnico

  • Symfony
  • Doctrine ORM, EasyAdmin
  • Algolia, Firebase, NzoUrlEncryptorBundle
  • PHPStan, Rector, PHP CS Fixer, CI automatizzata
  • App native iOS & Android
Condividi su: LinkedIn

Altri articoli recenti