Getting Started with symfony

Preparazione del progetto

You are currently browsing
the website for symfony 1

Visit the Symfony2 website


About

You are currently reading "Getting Started with symfony" which is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License license.

Tutorial Content

Master symfony

Be trained by SensioLabs experts (2 to 6 day sessions -- French or English).
trainings.sensiolabs.com

Books on symfony

Learn more about symfony with the official guides.
books.sensiolabs.com

L'audit Qualité par SensioLabs

200 points de contrôle de votre applicatif web.
audit.sensiolabs.com

Chapter Content

Creazione del progetto

Creazione di un'applicazione

Permessi sulla struttura delle directory

Il path di symfony

Configurare il database

Passare a Doctrine

symfony training
Be trained by symfony experts
May 29: Paris (Web Development with Symfony2 - Français)
May 31: Paris (Mastering Symfony2 - Français)
Jun 06: Paris (Introduction to Symfony2 - Français)
Jun 06: Paris (Introduction to Symfony2 - English)
Jun 06: Paris (Going Further with Symfony2 - English)
and more...

Search


powered by google
You are currently browsing "Getting Started with symfony" in Italian for the 1.2 version - Switch to language:
Creative Commons License This work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.
This version of symfony is not maintained anymore.
If some of your projects still use this version, consider upgrading as soon as possible.

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 ed un backend.

Creazione del progetto

Dalla directory 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 directory e di file necessaria ad un progetto symfony:

Directory Descrizione
apps/ Contiene tutte le applicazioni del progetto
cache/ I file messi in cache dal framework
config/ I file di configurazione del progetto
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 directory radice del web (vedi sotto)

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 directory 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 directory 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.

Creazione di un'applicazione

Creare l'applicazione frontend, eseguendo il task generate:app:

$ php symfony generate:app --escaping-strategy=on --csrf-secret=UniqueSecret frontend

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 ed 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 directory predefinita necessaria per l'applicazione, nella directory apps/frontend/:

Directory 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

Richiamando il task generate:app task, abbiamo usato anche due opzioni relative alla sicurezza:

Passando queste due opzioni facoltative al task, abbiamo messo in sicurezza lo sviluppo futuro da due delle più diffuse vulnerabilità del web. Già, symfony si prende cura della sicurezza per noi.

Se si ignora cosa siano XSS e CSRF, sarebbe meglio spendere un po' di tempo per sapere di più su queste vulnerabilità.

Permessi sulla struttura delle directory

Prima di provare ad accedere al nuovo progetto, occorre impostare i permessi di scrittura sulle directory cache/ e log/ ai livelli appropriati, in modo tale che il server web possa scriverci dentro:

$ chmod 777 cache/ log/

Il path di symfony

Per sapere la versione di symfony utilizzata da un progetto basta digitare:

$ php symfony -V

L'opzione -V mostra il path della directory di installazione di symfony che è memorizzato in config/ProjectConfiguration.class.php:

// config/ProjectConfiguration.class.php
require_once '/Users/fabien/work/symfony/dev/1.2/lib/autoload/sfCoreAutoload.class.php';

Per una maggiore portabilità cambiare il path assoluto dell'installazione di symfony con un path relativo:

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

In questo modo è possibile spostare la directory del progetto in qualsiasi punto della vostra macchina o su un'altra facendo in modo che il progetto continui a funzionare.

Configurare il database

Una delle prime cose da fare è quella di configurare la connessione al database del progetto. Il framework symfony supporta tutti i database supportati da PDO (MySQL, PostgreSQL, SQLite, Oracle, MSSQL, ...). Appoggiandosi a PDO, symfony è distribuito con due strumenti ORM: Propel e Doctrine. Propel è quello predefinito, ma passare a Doctrine è molto facile (si veda la prossima sezione per maggiori informazioni).

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.

Passare a Doctrine

Se si sceglie di usare Doctrine al posto di Propel, occorre innanzitutto abilitare sfDoctrinePlugin e disabilitare sfPropelPlugin. L'operazione può essere eseguita modificando il seguente codice in config/ProjectConfiguration.class.php:

public function setup()
{
  $this->enableAllPluginsExcept(array('sfPropelPlugin', 'sfCompat10Plugin'));
}

Dopo tali modifiche, lanciare i seguenti comandi:

$ php symfony plugin:publish-assets
$ php symfony cc
$ rm web/sfPropelPlugin
$ rm config/propel.ini
$ rm config/schema.yml
$ rm config/databases.yml

Quindi, eseguire i seguenti comandi per configurare un database per Doctrine:

$ php symfony configure:database --name=doctrine --class=sfDoctrineDatabase "mysql:host=localhost;dbname=jobeet" root mYsEcret
Configurazione del Web Server »
« Installazione di symfony

Questions & Feedback

If you find a typo or an error, please register and open a ticket.

If you need support or have a technical question, please post to the official user mailing-list.