[ImoLUG] sviluppare un sito con un cms

Fabio Fabbri fabio@llgp.org
Mar 27 Nov 2007 16:23:57 CET


Se c'è già un database io userei un framework. Io conosco symfony 
(http://symfony-project.org) e l'ho usato durante un tirocinio per 
consentire l'accesso via intranet ad un indirizzario, che ho 
reimplementato in mysql importando i dati da un vecchio applicativo 
gestito da dbase4...

Non conosco bene le api dei CMS e non saprei dire se sarebbe facile da 
fare con drupal o simili, perché mi pare che i CMS siano ottimizzati per 
gestire e pubblicare dei contenuti, e non so quanto sia facile adattarli 
per gli usi più particolari.

Con i framework come symfony o cakephp si parte dal database (facendo 
attenzione a seguire un certo standard per i nomi, in modo da poter 
sfruttare alcuni automatismi), e vengono generate in automatico le 
classi che gestiscono i dati (come se fosse un database ad oggetti). 
Volendo si possono modificare gli oggetti che gestiscono i dati e si 
possono implementare controlli, trigger o azioni più complesse da 
eseguire in caso di inserimento o modifica dei dati. Si possono generare 
in automatico anche le pagine per l'accesso ai dati con le funzioni CRUD 
di base (scaffolding). Si può partire da queste pagine di base per 
implementare azioni più complesse.

Inoltre in genere con i framework non c'è bisogno di scrivere molto 
codice, ma spesso basta usare nomi standard per attivare degli 
automatismi, e basta modificare dei file di configurazione per impostare 
ad esempio i permessi di accesso e le regole di validazione.

Usando i framework non si deve "reinventare la ruota" per gestire 
l'accesso al database e la validazione dei dati, quindi se i tuoi amici 
volevano partire da 0 gli conviene provare ad usare un framework, perché 
l'apprendimento è abbastanza rapido e già con il codice generato in 
automatico si possono raggiungere buoni risultati. Per cui se conoscono 
già php, programmazione ad oggetti e progettazione di database, il 
framework faciliterà i loro compiti, e potranno riciclare in altri 
progetti le conoscenze acquisite...

Per iniziare dovrebbero guardare qualche videopodcast/registrazione di 
talk sui framework (ricordo di averne visti alcuni ma ora non li ho 
sottomano... comunque c'è video.google.com...), alcuni mostrano come si 
possa creare una piccola web application in pochi minuti.

Poi dovrebbero provare a creare la prima applicazione con symfony e 
cake. Per entrambi è stato scelto di creare un semplice blog:
http://manual.cakephp.org/appendix/blog_tutorial
http://www.symfony-project.org/tutorial/1_0/my-first-project

Per symfony ci sarebbe anche un "advent calendar" che propone di creare 
un sito per raccogliere domande e risposte in 24 giorni, un'ora al 
giorno, dal 1 al 24 dicembre (come i calendari dell'avvento con i 
cioccolatini:)
http://www.symfony-project.org/askeet

Sono sicuro che esistono altri esempi simili sia per symfony che per 
cake, una volta esaminati potranno fare la loro scelta. Io inizialmente 
avevo provato cake (perché symfony non ha il supporto per php4), ma al 
primo impatto mi sono trovato male e non l'ho studiato a fondo. Poi ho 
potuto usare php5 e ho provato symfony, e mi sono trovato bene. Credo 
sia un fatto di gusti, secondo altre persone è meglio cake. Dovranno 
usare quello con cui si trovano meglio, ma mi pare che le feature siano 
più o meno simili.

Fabio Fabbri


Maggiori informazioni sulla lista Imolug