Symfony Framework PHP

Symfony è un framework per lo sviluppo di applicazioni web creato nativamente per PHP open source sotto licenza MIT. Il suo scopo è quello di aiutare gli sviluppatori web a creare potenti applicazioni in breve tempo, standardizzando il processo di sviluppo e fornendo un risultato pure standardizzato. Comprende una serie di mezzi per ottenere i risultati voluti velocemente e con sforzi limitati. Tutto è basato sull’architettura MVC ed ha anche il supporto per sviluppare alcune funzionalità AJAX.

Sebbene Symfony sia uno stack PHP completo, esso è composto da diversi componenti indipendenti, e quindi utilizzabili singolarmente in altri contesti, che all’interno del framework sono configurati per lavorare all’unisono e raggiungere il risultato preposto.

In particolare:

  • Twig: È un template engine utilizzato anche dal framwork Django e che permette di disaccoppiare la logica php dalla parte di presentazione. Le sue caratteristiche principali sono:
    • complex control flow: supporta gli operatori standard per implementare la logica di presentazione minimale
    • automatic escaping: gli output provenienti dagli oggetti di presentazione sono già compatibili con l’output html
    • template inheritance: i template possono essere riusati e inclusi in modo da poter gestire in maniera efficiente le modifiche
    • i18n: viene supportata l’internalizzazione all’interno dei template
    • macros: è possibile definire delle sequenze di operazioni da poter riustilizzare all’interno del programma
    • fully extendable: è possibile estendere l’insieme di funzionalità incluse nel pacchetto base
    • Doctrine (o Propel): è un set di librerie php che si occupano della persistenza delle entità attraverso l’approccio ORM e DAL. Inoltre Doctrine offre la possibilità di scrivere query nel metalinguaggio DQL che permette di astrarre completamente la base dati e rendere l’applicazione database indipendente.
  • Monolog: Monolog è una libreria per log php che permette di astrarre i log rispetto alla destinazione (database, file system, web service, email, etc.). Essa gestisce la scrittura dei messaggi a seconda del livello di severity.
  • Swift Mailer: La libreria pemette l’invio di email tramite un approccio object oriented ed estende le opzioni offerte dal php di base.

I PRO di Symfony

  • Si basa su librerie consolidate ed ampiamente diffuse
  • Offre un metodo veloce per realizzare applicazione data-oriented
  • È lo standard di fatto in ambiente php per creare applicazioni custom di livello
  • Startup facile

I Contro di Symfony

  • Difficile da adattare in contesti “user-oriented” invece che “data-oriented”
  • Risente di tutte le problematiche della piattaforma php, che in altri prodotti sono nascoste dal set di funzionalità già preconfezionate
danielefontani

Actually CTO in Sintra Consulting s.r.l, I'm senior developer and architect specialized on portals, intranets, and others business applications. Particularly interested in Agile developing and open source projects, I worked on some of this as project manager and developer. My experience include: Frameworks \Technlogies: .NET Framework (C# & VB), ASP.NET, Java, php, Spring Client languages: XML, HTML, CSS, JavaScript, Angular.js,Angular. jQuery Platforms: Sharepoint,Liferay, Drupal Databases: MSSQL, ORACLE, MYSQL, Postgres

Lascia un commento