Che cos’è Symfony e a cosa serve ?

Cos’è Symfony ?

Symfony è un framework open source MVC di PHP che consente un rapido sviluppo di applicazioni web grazie ad un sistema modulare e a componenti riutilizzabili – indicato quindi per progetti scalabili. Inoltre i singoli componenti possono essere utilizzati in base alle necessità, senza dover includere la libreria completa.

Symfony usa il template engine Twig, mentre per le interazioni con i database sfrutta l’ORM Doctrine.

Symfony è scritto interamente in PHP. È stato testato in diversi progetti del mondo reale ed è attualmente usato per siti commerciali ad alto traffico. È compatibile con i database esistenti, inclusi MySQL, PostgreSQL, Oracle e Microsoft SQL Server. Gira su piattaforme *nix e Windows

In generale, il framework Symfony è flessibile ed elimina la codifica ingombrante, risparmiando così tempo di sviluppo. La filosofia alla base di Symfony è aiutare a creare software che semplificano l’intero processo di sviluppo del prodotto per gli sviluppatori.

A cosa serve Symfony ?

Symfony è più comunemente usato per creare applicazioni web grandi e complesse come Spotify poiché può gestire compiti di grandi dimensioni senza problemi. Sebbene utilizziamo principalmente il framework per applicazioni web complesse, Symfony è anche uno dei preferiti per la sua flessibilità.

Il framework Symfony ha caratteristiche e funzioni personalizzate, ottimo per sviluppare un software personalizzato per aiutare le aziende a crescere. Puoi scegliere tra un database full-stack o brick-by-brick. Un database full-stack ti consente di creare applicazioni web complesse come Spotify. Un database brick-by-brick è un framework personalizzato con caratteristiche e funzioni personalizzabili per adattarsi alle aziende in crescita.

I componenti del framework

I componenti di Symfony sono librerie PHP indipendenti che forniscono funzionalità uniche in qualsiasi applicazione PHP. Attualmente, il framework Symfony contiene più di 30 componenti di alta qualità.

Componenti del framework Symfony:

    • Finder: questo componente utilizza un’interfaccia intuitiva e fluida per trovare file e directory in base a vari criteri.
    • Filesystem: offre un’utilità indipendentemente dalla piattaforma per le operazioni del file system e la manipolazione del percorso di file/directory. 
    • ClassLoader: se le classi del tuo progetto aderiscono alle convenzioni PHP standard, questo componente le caricherà automaticamente.
    • DependencyInjection: implementa un contenitore di servizi compatibile con PSR-11, consentendoti di confrontare e centralizzare il modo in cui gli elementi vengono integrati nella tua applicazione.
    • EventDispatcher: consente ai componenti dell’applicazione di comunicare tra loro rimanendo in ascolto grazie ad un sistema di eventi. Per rendere tutto questo possibile implementa i design pattern Mediator e Observer.
    • Serializer: converte gli oggetti in un formato specifico (XML, JSON, YAML, ecc.) e viceversa.
    • Flusso di lavoro: in modo orientato agli oggetti, puoi creare un processo o un ciclo di vita per il tuo articolo utilizzando questo componente. Ogni passaggio è noto come posizione e puoi anche definire azioni, chiamate transizioni, che descrivono come un luogo porta a un altro.
    • HttpFoundation: definisce il livello orientato agli oggetti della specifica HTTP. Uno strato orientato agli oggetti sostituisce le variabili e le funzioni globali predefinite di PHP nel componente Symfony HttpFoundation.
    • Form: può generare, elaborare e riutilizzare moduli. Il componente Modulo è uno strumento che può aiutarti a risolvere il problema di consentire agli utenti finali di interagire e modificare i dati nella tua applicazione.
    • HttpKernel: fornisce un processo strutturato per convertire una richiesta in una risposta grazie all’aiuto dell’EventDispatcher. È abbastanza versatile da poter essere utilizzato per creare un framework full-stack (Symfony), un micro-framework (Silex) o un raffinato sistema CMS (Drupal).
    • Routing: Quando l’applicazione riceve una richiesta, richiama un’azione del controller per produrre una risposta. La configurazione del routing specifica quale azione deve essere eseguita per ogni URL in entrata e offre anche la possibilità di generare URL SEO-friendly.