In symfony, le applicazioni che condividono lo stesso modello dei dati sono raggruppate in progetti. Per la maggior parte dei progetti si avranno due diverse applicazioni: un frontend e un backend.
Creazione del progetto
Dalla cartella sfproject/
, eseguire il task di symfony generate:project
per creare effettivamente il progetto symfony:
$ php lib/vendor/symfony/data/bin/symfony generate:project PROJECT_NAME
Su Windows:
c:\> php lib\vendor\symfony\data\bin\symfony generate:project PROJECT_NAME
Il task generate:project
genera la struttura predefinita di cartella e di
file necessaria a un progetto symfony:
Cartella | Descrizione |
---|---|
apps/ |
Contiene tutte le applicazioni del progetto |
cache/ |
I file messi in cache dal framework |
config/ |
I file di configurazione del progetto |
data/ |
I file di dati, come infissi iniziale |
lib/ |
Le classi e le librerie del progetto |
log/ |
I file di log del framework |
plugins/ |
I plugin installati |
test/ |
I file per i test unitari e funzionali |
web/ |
La cartella radice del web (vedi sotto) |
note
Per quale motivo symfony genera così tanti file? Uno dei maggiori benefici che derivano dall'uso di un framework full-stack è quello della standardizzazione dello sviluppo. Grazie alla struttura predefinita di file e cartella di symfony, ogni sviluppatore che conosca symfony può occuparsi della manutenzione di qualsiasi progetto symfony. In pochi minuti avrà la possibilità di analizzare il codice, sistemare i bug e aggiungere nuove caratteristiche.
Il task generate:project
crea anche un collegamento symfony
nella
cartella radice del progetto, per accorciare il numero di caratteri
da scrivere quando si esegue un task.
Quindi, d'ora in poi, invece di usare il percorso completo a symfony,
si può usare il collegamento symfony
.
Verifica dell'installazione
Ora che symfony è installato, verificare che sia tutto a posto, utilizzando la riga di comando
per visualizzare la versione di symfony (attenzione alla V
maiuscola):
$ cd ../.. $ php lib/vendor/symfony/data/bin/symfony -V
Su Windows:
c:\> cd ..\.. c:\> php lib\vendor\symfony\data\bin\symfony -V
L'opzione -V
mostra anche il percorso della cartella di installazione di
symfony, memorizzato in config/ProjectConfiguration.class.php
.
Se il percorso di symfony è assoluto (il che non dovrebbe essere, se si sono seguite le istruzioni viste sopra), modificarlo come segue, per una migliore portabilità:
// config/ProjectConfiguration.class.php require_once dirname(__FILE__).'/../lib/vendor/symfony/lib/autoload/sfCoreAutoload.class.php';
In questo modo, si può spostare la cartella del progetto ovunque, senza problemi.
tip
Volendo sapere di più su questa riga di comando, digitare
symfony
per elencare le opzioni e i task disponibili:
$ php lib/vendor/symfony/data/bin/symfony
Su Windows:
c:\> php lib\vendor\symfony\data\bin\symfony
La riga di comando di symfony è il migliore amico dello sviluppatore. Mette a disposizione molti strumenti che migliorano la produttività per attività giornaliere come pulizia della cache, generazione di codice e molto altro.
Configurazione del database
Il framework symfony supporta nativamente tutti i database
supportati da PDO (MySQL, PostgreSQL,
SQLite, Oracle, MSSQL, ...). Appoggiandosi a PDO, symfony è distribuito
con due strumenti ORM: Propel e Doctrine. Quando si crea un nuovo
progetto, Doctrine è abilitato in modo predefinito. La configurazione
del database è semplificata dall'uso del task configure:database
:
$ php symfony configure:database "mysql:host=localhost;dbname=dbname" root mYsEcret
Il task configure:database
accetta tre parametri: il
DSN di PDO, il nome utente e
la password per accedere al database. Se non si ha bisogno di una password per
accedere al database sul server di sviluppo, basta omettere il terzo parametro.
tip
Se si vuole usare Propel invece di Doctrine, aggiungere --orm=Propel
quando
si crea il progetto col task generate:project
. Se invece non si vuole
usare nessun ORM, basta passare --orm=none
.
Creazione di un'applicazione
Creare l'applicazione frontend, eseguendo il task generate:app
:
$ php symfony generate:app --escaping-strategy=on --csrf-secret=UniqueSecret frontend
tip
Essendo il collegamento a symfony un file eseguibile, gli utenti Unix
possono d'ora in poi sostituire tutte le occorrenze di 'php symfony
'
con './symfony
'
Su Windows, si può copiare il file 'symfony.bat
' all'interno del
progetto e usare 'symfony
' invece di 'php symfony
':
c:\> copy lib\vendor\symfony\data\bin\symfony.bat .
Basandosi sul nome dell'applicazione fornito come parametro, il task
generate:app
crea la struttura di cartella predefinita necessaria
per l'applicazione, nella cartella apps/frontend/
:
Cartella | Descrizione |
---|---|
config/ |
I file di configurazione dell'applicazione |
lib/ |
Le librerie e le classi dell'applicazione |
modules/ |
Il codice dell'applicazione (MVC) |
templates/ |
I file dei template globali |
Permessi sulla struttura delle cartelle
Prima di provare ad accedere al nuovo progetto, occorre impostare i
permessi di scrittura sulle cartella cache/
e log/
ai livelli
appropriati, in modo tale che il server web possa scriverci dentro:
$ chmod 777 cache/ log/
This work is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License license.