martedì 29 settembre 2009

symfony, creazione progetto e applicazione

In simfony un progetto è suddiviso in una o più applicazioni. È abbastanza comune avere almeno un'applicazione per il frontend e un'applicazione per il backend ed è così che sarà strutturato Lyra. Procediamo con ordine e creiamo per prima cosa il progetto. Da terminale e posizionati nella cartella radice del progetto (che, ripeto, nel mio caso è ~/sfprojects/lyra) digitiamo il comando

php lib/vendor/symfony/data/bin/symfony generate:project lyra

Il risultato sarà la creazione di un bel numero di cartelle che si aggiungono alla cartella lib che abbiamo creato la volta scorsa e che contiene il framework. L'albero delle cartelle del progetto è ora il seguente (riporto solo il primo livello, alcune cartelle contengono ulteriori sotto cartelle)

~
  sfprojects
    lyra
      apps
      cache
      config
      data
      doc
      lib
      log
      plugins
      test
      web

Tra i vari file creati dal comando generate:project, nella cartella radice del progetto ce n'è uno chiamato symfony che ci permetterà da ora in poi di eseguire i comandi senza specificare il percorso completo (lib/vendor/symfony/data/bin/symfony).

In Linux ad esempio basterà digitare dalla cartella radice del progetto

./symfony comando opzioni argomenti

Con il comando generate:app creiamo l'applicazione di frontend per il nostro progetto

./symfony generate:app --escaping-strategy=on --csrf-secret=gfhtyy87 frontend

Dei due parametri escaping-strategy e csrf-secret (a quest'ultimo si passa una sequenza di caratteri scelta a caso) ci sarà modo di parlare in seguito, per ora dico solo che è opportuno specificarli perché impostano strategie predefinite importanti per la sicurezza dell'applicazione.

Per effetto di questo comando una serie di cartelle sono create all'interno della cartella apps

~
  sfprojects
    lyra
      apps
        frontend
          config
          i18n
          lib
          modules
          templates
...

Prima di proseguire è bene fare subito una modifica al file di configurazione del progetto per renderlo facilmente rilocabile da un server ad un altro. All'inizio di config/ProjectConfiguration.class.php troviamo questa riga

require_once '/home/gmassi/sfprojects/lyra/lib/vendor/symfony/lib/autoload/sfCoreAutoload.class.php';

Ovviamente chi ha eseguito le varie operazioni sul proprio server di sviluppo avrà il percorso alla propria cartella. Modificare la riga così:

require_once dirname(__FILE__).'/../lib/vendor/symfony/lib/autoload/sfCoreAutoload.class.php';

Arrivati a questo punto siamo quasi in grado di visualizzare qualcosa nel browser. Prima però è necessario configurare un host virtuale per il progetto. Ecco la procedura da seguire (Linux Ubuntu).

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/lyra
sudo gedit /etc/apache2/sites-available/lyra

Modificare il file di configurazione in questo modo (ovviamente con i propri percorsi al posto di '/home/gmassi/...')

<VirtualHost *:80>
  ServerAdmin webmaster@localhost
  ServerName lyra
  DocumentRoot /home/gmassi/sfprojects/lyra/web
  <Directory />
    Options FollowSymLinks
    AllowOverride None
  </Directory>
  <Directory /home/gmassi/sfprojects/lyra/web>
    AllowOverride All
    Allow from All
  </Directory>

  Alias /sf /home/gmassi/sfprojects/lyra/lib/vendor/symfony/data/web/sf
  <Directory "/home/gmassi/sfprojects/lyra/lib/vendor/symfony/data/web/sf">
    AllowOverride All
    Allow from All
  </Directory>
</VirtualHost>

Abilitare l'host virtuale con

sudo a2ensite lyra
sudo /etc/init.d/apache2 restart

Per finire,

sudo gedit /etc/hosts

e aggiungere l'host virtuale appena creato sulla prima riga dopo localhost

127.0.0.1 localhost lyra

Possiamo lanciare il browser e scrivere nella barra degli indirizzi

http://lyra/index.php/

Se abbiamo mod_rewrite abilitato sul server di sviluppo (consigliabile) va bene anche semplicemente

http://lyra/

Se tutti i passaggi sono stati seguiti correttamente comparirà la pagina di benvenuto predefinita di simfony.

Ho eseguito il commit della revisione 4 su Google Code. A questo punto per crearsi localmente il proprio ambiente di sviluppo si hanno due possibilità:

1) Si eseguono in sequenza le operazioni descritte nell'articolo precedente (Installazione del framework) ed in questo.

2) Ci si limita a creare una propria cartella locale per il progetto ad esempio ~/sfprojects/lyra e da una finestra terminale si esegue il checkout della revisione 4. Chiaramente il client Subversion deve essere installato.

cd ~/sfprojects/lyra
svn checkout -r4 http://lyra-cms.googlecode.com/svn/trunk/ .

Poi si assegnano i permessi alle cartelle cache e log

chmod 777 cache
chmod 777 log

Infine si seguono le indicazioni presenti in questo articolo per creare un host virtuale che abbia come Document Root la cartella web all'interno della propria cartella del progetto.

Dalla prossima volta si inizierà lo sviluppo del modello dati specifico per la nostra applicazione.

Nessun commento:

Posta un commento

Nota. Solo i membri di questo blog possono postare un commento.