[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