2015-01-04 9 views
11

Mi piacerebbe sapere qual è la differenza quando si crea un nuovo progetto symfony con il nuovo programma di installazione di symfony che è apparso l'ultima volta e il compositore vecchio stile.Più nuovo installatore di symfony contro compositore

Ho installato l'ultima versione di symfony (2.6.1) con entrambi e il risultato era diverso, ad esempio quando installo symfony con il compositore, ottengo il file .gitignore. Quando installo con il nuovo script di installazione di symfony, manca gitignore.

Ecco quantità di cataloghi e file nel nuovo progetto:

symfony installer:      1498 directories, 7136 files 
symfony installer + composer update: 1571 directories, 7749 files 
composer create-project:    1615 directories, 7905 files 

suppongo mi atterrei al vecchio modo - compositore, dal nuovo programma di installazione sembra essere spiati o almeno non ancora completo, ma io Mi piacerebbe capire di più su questo argomento, qual è la differenza, è sicuro usare il nuovo programma di installazione ecc.?

risposta

10

Come già spiegato da Leggendario, l'installer scarica i file dist dal sito Web (un file .tar.gz o .zip). Questo accelera il processo di installazione un po '.

Tuttavia, quando si creano i file dist, symfony.com utilizza uno script di build personalizzato che rimuove alcuni file e modifica alcune cose. D'altra parte, il compositore scarica semplicemente il repository per te.

Le differenze principali:

  • Compositore download le ultime dipendenze (come Leggendario ha sottolineato), mentre lo script build contiene i file più recenti al momento della costruzione.
  • Composer utilizza le versioni dev e quindi utilizza git clone per scaricare i pacchetti. Lo script di build usa solo pacchetti stabili, che renderanno Composer utilizzare la versione dist. Alcuni pacchetti rimuovono i file test e doc dai loro file dist.
  • Il compositore contiene tutte le informazioni relative al progetto, ad esempio .gitignore. Lo script di compilazione in precedenza presuppone che la persona che l'ha installata non abbia git, quindi ha rimosso questo file e altri file correlati a git come i file .gitkeep in app/cache e app/logs.

In ogni caso, sia l'installer che il compositore forniscono sempre una versione funzionante di Symfony Standard Edition.

Finalmente, lo script di compilazione era changed ora l'installazione è diventato il modo ufficiale di installazione. Ora conterrà i file relativi a git. D'altra parte, non conterrà il file LICENSE, i file UPGRADE-*.md e il file README.md. Quindi, alla fine, possiamo dire che quello installato dal programma di installazione è più utilizzabile, in quanto rimuove i file inutili.

+0

Grazie, ottima spiegazione. Ho scaricato il programma di installazione dal sito Web di symfony quindi suppongo che sia un po 'obsoleto lì, e ho solo bisogno di aggiornarlo con l'ultima versione di github in modo che possa creare per me un progetto pronto per lavorare con git? D'altra parte mi piacerebbe stare con apache quindi se decido di usare l'installer dovrò preoccuparmi da solo di trovare i file .htaccess di base? Shame non è configurabile tramite i parametri dell'installatore. – Fisher

1

Hai aggiornato di installazione anche con:

symfony self-update 

o in Windows:

php symfony.phar self-update 

come dichiarato here?

Questa è forse una parte della risposta. Tra le differenze, il programma di installazione sembra gestire meglio le diverse versioni di symfony.

3

Symfony2 Installer lo ha scaricato dal sito Web (in questo caso: http://symfony.com/download?v=Symfony_Standard_Vendors_2.6.1.zip).

Per vedere le differenze tra symfony installer e il classico composer create-project è sufficiente a dare un'occhiata a entrambi composer.lock: https://www.diffchecker.com/oig86oki

A sinistra il composer.lock generato dopo composer create-project, sulla destra symfony installer. Era evidente a tutti che Symfony2 scaricato da un archivio non poteva avere i pacchetti più recenti. Quindi, fai l'aggiornamento con composer update.

Anche in questo caso, a sinistra il composer.lock di composer create-project, a destra la nuova composer.lock dopo l'aggiornamento: https://www.diffchecker.com/lj5j2eap

come ci aspettavamo. Ma nella dir del venditore non c'è lo stesso numero di file. Alcune cartelle non sono lì. Alcune cartelle con test funzionali non vengono scaricate con symfony installer. È necessario forzare il compositore per aggiornare tutti i pacchetti o reinstallarli.

Problemi correlati