Development

01-Introduzione

You must first sign up to be able to contribute.

Version 4 (modified by Andrea.Giorgini, 11 years ago)
--

Cosa può fare Symfony per te? Cosa è richiesto per poterlo usare? Il presente capitolo fornirà una risposta a queste domande.

Symfony in breve

Un framework permette di velocizzare lo sviluppo di applicazioni automatizzando alcuni pattern utilizzati per risolvere problemi noti. Un framework inoltre dota il codice di una struttura, che incoraggia lo sviluppatore alla scrittura di codice migliore, più leggibile e più facilmente manutenibile. Infine, un framework facilita la vita dello sviluppatore, in quanto "impacchetta" operazioni complesse all'interno di semplici statement.

Symfony è un framework completo, studiato per ottimizzare lo sviluppo di applicazioni web sulla base di diverse caratteristiche chiave. Per i principianti, separa le business rules, server logic, e presentation views dell'applicazione. Contiene molti tool e classi che hanno lo scopo di accorciare il tempo di sviluppo di un'applicazione web molto complicata. Inoltre, automatizza task comuni, in modo che lo sviluppatore si possa concentrare sulle specifiche dell'applicazione. Si potrebbe riassumere il risultato finale come "non è necessario reinventare la ruota ogni volta che una nuova applicazione web deve essere sviluppata!".

Symfony è stato scritto interamente in PHP 5. E' stato intensamente testato su progetti reali, ed è attualmente in uso per siti di e-business ad alto traffico. E' compatibile con la maggior parte dei database esistenti, inclusi MySQL, PostgreSQL, Oracle, e Microsoft SQL Server. Gira su piattaforme *nix e Windows. Cominciamo con un'occhiata più da vicino alle sue caratteristiche.

Caratteristiche

Symfony è stato pensato per soddisfare i seguenti requisiti:

  • Facile da installare e configurare sulla maggior parte delle piattaforme (e garanzia di funzionamento su installazioni standard di *nix e Windows)
  • Indipendente dal database sottostante
  • Semplice da usare, nella maggior parte dei casi, ma flessibile abbastanza da adattarsi a problematiche particolarmente complesse
  • Basato sulla premessa di convenzione sulla configurazione -- Lo sviluppatore deve configurare solo ciò che non è convenzionale
  • Adeguato alle pratiche di sviluppo web ed ai pattern più comuni
  • Pronto per l'azienda -- Adattabile a politiche ed architetture IT esistenti, e stabile abbastanza da permettere lo sviluppo di progetti a lungo termine
  • Codice molto leggibile, commentato con phpDocumentor, per una maggiore facilità di manutenzione
  • Facile da estendere, grazie alla possibilità d'integrazione con librerie esterne

Caratteristiche di automazione di progetti web

La maggior parte delle caratteristiche di progetti web sono automatizzate in Symfony, come:

  • Il layer di internazionalizzazione incorporato permette la traduzione sia dei dati che delle interfacce, nonche la localizzazione dei contenuti
  • La presentazione utilizza template e layout che possono essere realizzati da designer HTML senza alcuna conoscenza del framework. Gli Helper riducono l'ammontare di codice da scrivere per la presentazione, incapsulando grandi porzioni di codice in semplici chiamate a funzioni
  • Le Form supportano validazione e ripopolamento automatici, e ciò assicura una migliore qualità dei dati nel db ed una migliore fruibilità per l'utente
  • L'escaping dell'output protegge le applicazioni da attacchi tramite dati corrotti
  • La gestione della cache riduce la banda utilizzata ed il carico sul server
  • Le caratteristiche di autenticazione e credenziali facilita la creazione di sezioni ristrette e la gestione della sicurezza
  • Routing e URL intelligenti fanno diventare l'indirizzo della pagina parte parte dell'interfaccia, nonchè facilitano il lavoro dei motori di ricerca
  • Le caratteristiche incorporate di gestione E-Mail ed API permettono all'applicazione web di andare oltre la classica interazione con il browser
  • Le liste sono più user-friendly grazie alla paginazione automatica, l'ordinamento ed i filtri
  • Factories, plug-ins, and mixins forniscono un alto livello di espandibilità
  • Le interazioni Ajax sono facilmente implementabili grazie agli one-line helper che incapsulano effetti JavaScript compatibili con i browser più diffusi