.: HosiriS :.

Informatica e non solo

Symfony: proviamo a fare una todo list – intro

Posted by hosiris su aprile 17, 2010

Qualche mese fa parlai di Symfony, poi non ho più avuto tempo di metterci le mani, ma adesso voglio provare a creare una semplice applicazione: un lista delle cose da fare!
Cominciamo col descrivere cosa vogliamo che l’applicazione faccia:

  • un utente che accede alla home page vede la lista delle attività da svolgere
  • ordinati in base alla priorità
  • ha la possibilità di selezionare le attività complete
  • le attività complete non vengono visualizzate
  • al click vengono visualizzati i particolari dell’attività
  • l’utente può aggiugere delle nuove attività
  • un admin può eliminare l’attività
  • un admin può modificare l’attività

Il nostro progetto prevederà due applicazioni: frontend e backend. Nella prima applicazione lavoreranno gli utenti, mantre nella seconda gli admin.

Abbiamo definito lo scenario e le applicazioni. Vediamo adesso la costruzione del DB. Sarà un modello molto semplice, con una tabella e pochi campi:

  • id: int, autoincrement, primary
  • name: varchar(255), required
  • data_in: datetime
  • description: text
  • priority: int
  • completed: boolean

Cominciamo con la parte pratica… tutta sta teoria m’ha fatto venire il mal di testa.
Creiamo la cartella del progetto:


$ mkdir -p todo/lib/vendor

e copiamo il pacchetto scaricato da symfony (ho usato la versione 1.4):


$ cd todo/lib/vendor
$ wget http://www.symfony-project.org/get/symfony-1.4.4.zip
$ unzip symfony-1.4.4.zip
$ mv symfony-1.4.4 symfony
$ rm symfony-1.4.4.zip

Vi consiglio di controllare che la configurazione di php sia ok:


$ php symfony/data/bin/check_configuration.php

ritorniamo alla cartella principale e creiamo il progetto:


$ cd ../..
$ php lib/vendor/symfony/data/bin/symfont generate:project todo --orm=Propel

A questo punto la vostra cartella di sarà popolata di tanta roba (non scappate, pian pianino capiremo come usare tutto). Creiamo subito la prima applicazione:


$ ./symfony generate:app frontend

Notate come generate:project ci abbia aiutati creando un file che ci evita di scrivere ogni volta il path completo.
A questo punto non ci rimane che impostare il web server in maniera da puntare al nostro progetto. Sulla guida di symfony sono descritti tre metodi, ma io uso solo un metodo per tutto quello che faccio: l’utilizza dei VirtualServer.
Per prima cosa diciamo al pc dove trovare il nome (a meno che non vogliate usare l’ip):


$ sudo vim /etc/hosts

Aggiungere una riga con scritto: 127.0.0.1 todo. Poi creiamo il file di configurazione:


$ cd /etc/apache2/sites-enabled/
$ sudo vim 001-todo

e buttateci dentro tutto quello che segue:


<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName todo
DocumentRoot /media/Volume/Progetti/todosf/web/
<Directory />
  Options FollowSymLinks
  AllowOverride None
</Directory>
<Directory /media/Volume/Progetti/todosf/web/>
  Options Indexes FollowSymLinks MultiViews
  AllowOverride None
  Order allow,deny
  allow from all
</Directory>
Alias /sf /media/Volume/Progetti/todosf/lib/vendor/symfony/data/web/sf
<Directory "/media/Volume/Progetti/todosf/lib/vendor/symfony/data/web/sf">
  AllowOverride All
  Allow from All
</Directory>
</VirtualHost>

Questa è una configurazione minimale utile a far girare il progetto, chi conosce apache può aggiungere quello che vuole, ad esempio per il log degli errori… etc!
Salvate e riavviate il server. Adesso andando sul bowser e scrivendo http://todo, vi apparirà:

Con questo ci fermiamo per oggi! Se non conoscete Symfony vi consiglio di leggervi i primi 4 capitoli della guida! Vi farete le idee più chiare.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

 
%d blogger cliccano Mi Piace per questo: