Introduzione a symfony

Visto che un esempio vale più di mille parole, vedremo ora come symfony gestisce lo scaffolding, ovvero la generazione delle classi del modello a partire da un semplice schema. Supponiamo di dover sviluppare un forum, avremo uno schema come quello seguente:

User:
  id:       ~
  name:     { type: varchar, required: true }
  password: { type: varchar, required: true }

 

Forum:
  id:      ~
  title:   { type: varchar, required: true }
  is_open: { type: boolean, default: true }

 

Topic:
  id:       ~
  forum_id: ~
  user_id:  ~
  title:    { type: varchar, required: true }

 

Message:  
  id:       ~
  topic_id: ~
  user_id:  ~
  title:    { type: varchar, required: true }
  text:     { type: longvarchar, required: true }

 

Anche senza conoscere la sintassi specifica di questo schema, scritto in YAML, la composizione delle entità e delle relazioni dovrebbe essere facilmente intuibile da chiunque: ci sono dei forum, in cui vengono scritti dei topic, che sono composti da messaggi, che sono scritti da utenti. Per i campi le cui caratteristiche sono omesse (quelli seguiti dal segno di tilde), symfony provvederà a un calcolo automatico (per esempio, i campi "id" sono degli interi con auto-increment, i campi come "forum_id" sono chiavi esterne)

Con un paio di comandi eseguiti da terminale, symfony genererà, partendo da tale schema:

  • tutte le tabelle necessarie nel database
  • tutte le classi necessarie per inserire dati nelle tabelle, estrarre dati, aggiornarli e cancellarli
  • tutti i form relativi, con i campi necessari (ad esempio un radio per i campi booleani, un input select per le chiavi esterne, con i valori estratti dalla tabella relativa)

Con un altro comando è possibile generare un'intera interfaccia di amministrazione, basata sulle classi e sui form di cui sopra. In questo modo non ci sarà alcun bisogno di perder tempo in quei compiti ripetitivi e noiosi, quali scrivere le query di base per le esigenze più comuni relative all'interazione col database. Tuttavia, sarà sempre possibile modificare le classi generate automaticamente, per aggiungere tutti quei metodi necessari alla personalizzazione. In caso di modifica "in corsa" al database, sarà sufficiente modificare lo schema e rigenerare le classi. Le personalizzazione già fatte non saranno sovrascritte. Come accennato inizialmente, questo consente di concentrarsi sui problemi e sulle logiche specifiche dell'applicazione da implementare.

Il suddetto esempio ovviamente non esaurisce tutte le potenzialità di symfony ma permette di intuire come sia sufficiente un minimo sforzo per ottenere fin da subito risultati considerevoli. Per approfondire l'utilizzo di symfony basta consutare l'estesa documentazione disponibile su www.symfony-project.org.

Pagine: precedente 1 2 3

4 commenti

1 David David mercoledì 15 settembre 2010, ore 16:31
Ciao a tutti,
qualcuno sa dirmi se esiste un tutorial fatto bene che spieghi esattamente come installare il framework Symfony con l'ultima versione di Mac os X e Mamp server?
Grazie e a presto
2 Tassoman Tassoman giovedì 16 settembre 2010, ore 08:08
Ciao David, segui il tutorial passo passo Jobeet è in Italiano, tradotto anche da Massimiliano. Impari tutto symfony in un mese impiegando un'ora al giorno del tuo tempo.

http://www.symfony-project.org/jobeet/1_4/Propel/it/
3 Massimiliano Arione Massimiliano Arione giovedì 16 settembre 2010, ore 08:23
David, non posso provarle personalmente per mancanza di un Mac, ma cercando "symfony mamp" su google si trovano diverse guide a riguardo, come ad esempio questa: http://www.tech-recipes.com/rx/2884/os_x_how_to_install_symfony_into_mamp/
ciao
4 Dad DaD mercoledì 29 dicembre 2010, ore 15:29
Ho testato symfony con MAMP senza nessun problema, basta seguire la documentazione e tutto fila liscio.
Effettua l'accesso o registrati per inserire un commento