Creare e memorizzare un progetto Symfony in git

Suggerimento

Sebbene questa guida riguardi nello specifico git, gli stessi principi valgono in generale se si memorizza un progetto in Subversion.

Una volta letto Creare pagine in Symfony e preso familiarità con l’uso di Symfony, si vorrà certamente iniziare un proprio progetto. In questa ricetta si imparerà il modo migliore per iniziare un nuovo progetto Symfony, memorizzato usando il sistema di controllo dei sorgenti git.

Preparazione del progetto

Per iniziare, occorre scaricare Symfony e installarlo. Vedere il capitolo sull’Installare e configurare Symfony per maggiori dettagli

Una volta preparato il progetto, seguire questi passi:

  1. Inizializzare il repository git:

    $ git init
    
  2. Aggiungere tutti i file in git:

    $ git add .
    

    Suggerimento

    Non tutti i file che sono stati scaricati da Composer nel primo passo verranno aggiunti a Git. Alcuni file e cartelle non vanno in Git, come le dipendenze del progetto (gestite da Composer), parameters.yml (che contiene informazioni sensibili, come le credenziali per la base dati), i file di log e di cache e le risorse esportate (che sono create automaticamente dal progetto). Per evitare di aggiungere accidentalmente tali file e cartelle, la Standard Edition dispone di un file chiamato .gitignore, che contiene una lista di file e cartelle che Git deve ignorare.

    Suggerimento

    Si può anche creare un file .gitignore da usare per tutto il sistema. Questo consente di escludere file e cartelle, in ogni progetto, che vengono creati da un IDE o dal sistema operativo. Per maggiori dettagli, vedere GitHub .gitignore.

  3. Creare un commit iniziale con il nuovo progetto:

    $ git commit -m "Commit iniziale"
    

A questo punto, si ha un progetto Symfony pienamente funzionante e correttamente copiato su git. Si può iniziare subito a sviluppare, inviando i commit delle modifiche al proprio repository git.

Si può continuare a seguire il capitolo Creare pagine in Symfony per imparare di più su come configurare e sviluppare un’applicazione.

Suggerimento

Symfony Standard Edition è distribuito con alcuni esempi di funzionamento. Per rimuovere il codice di esempio, seguire le istruzioni nella ricetta “Rimuovere AcmeDemoBundle”.

Gestire le librerie dei venditori con composer.json

Come funziona?

Ogni progetto Symfony usa un gruppo di librerie di “venditori”. In un modo o nell’altro, lo scopo è scaricare tali file nella propria cartella vendor/ e, idealmente, avere un modo tranquillo per gestire l’esatta versione necessaria per ciascuno.

Per impostazione predefinita, tali librerie sono scaricate eseguendo uno script “scaricatore” php composer.phar install. Questo file composer.phar fa parte di una libreria chiamata Composer, di cui si può approfondire l’uso in questo capitolo.

Il file composer.phar legge dal file composer.json, posto nella radice del progetto. Questo file, formattato in JSON, contiene una lista di ogni pacchetto esterno necessario, la sua versione e altro ancora. Il file composer.phar legge anche un file composer.lock, che consente di bloccare ogni libreria a una versione esatta. Di fatto se esiste un file composer.lock, le versioni in esso contenute sovrascrivono quelle in composer.json. Per aggiornare le librerie alle ultime versioni, eseguire php composer.phar update.

Suggerimento

Se si vuole aggiungere un nuovo pacchetto a un’applicazione, eseguire il comando require:

$ composer require doctrine/doctrine-fixtures-bundle

Per saperne di più su Composer, vedere GetComposer.org:

È importante capire che queste librerie di venditori non sono in realtà parte del proprio repository. Sono invece dei semplici file non tracciati, che sono scaricati nella cartella vendor/. Ma, poiché ogni informazione necessaria a scaricare tali file è nei file composer.json e composer.lock (che sono memorizzati nel proprio repository), ogni altro sviluppatore può usare il progetto, eseguendo php composer.phar install e scaricando lo stesso preciso insieme di librerie di venditori. Questo vuol dire che si può controllare con precisione ogni libreria di venditore, senza dover in realtà inserirle nel proprio repository.

Quindi, ogni volta che uno sviluppatore usa il progetto, deve eseguire lo script php composer.phar install, per assicurarsi di avere tutte le librerie necessarie.

Memorizzare il progetto su un server remoto

Si è ora in possesso di un progetto Symfony pienamente funzionante e memorizzato in git. Tuttavia, spesso si vuole memorizzare un progetto un server remoto, sia per questioni di backup, sia per fare in modo che altri sviluppatori possano collaborare al progetto stesso.

Il modo più facile per memorizzare un progetto su un server remoto è l’utilizzo di servizi come GitHub o Bitbucket. Ovviamente ci sono molti altri servizi in giro, si può iniziare una ricerca su confronto tra servizi di hosting.

In alternativa, si può ospitare un proprio repository git su un qualsiasi server, creando un repository privato e usando quello. Una libreria che può aiutare in tal senso è Gitolite.