2013-07-03 11 views
6

Ho appena finito un semplice lavoro fatto in Laravel 4 e sono pronto per la distribuzione sul mio server.Laravel: Deploy and vendor folder

Ho trovato che la cartella del venditore ha una dimensione di 100 MB e mi chiedo se è necessario caricare tutte le sue sottocartelle. Suppongo che io non usi la maggior parte di quelle librerie, c'è una buona pratica da seguire per implementare un progetto Laravel?

risposta

3

Non caricare la cartella del fornitore, è necessario eseguire l'installazione/aggiornamento di composer sul server in cui viene distribuito. Dovresti solo distribuire i tuoi file dell'applicazione.

+2

Non ho accesso ssh su questo server. Ho solo un accesso FTP – MatterGoal

+0

E se si tratta di un host condiviso (come molte persone hanno) senza SSH? – Frug

+0

@Frug: sembra terribile :) Immagino che tu sia sfortunato e devi distribuire la tua cartella del venditore. A mio parere, gli aspetti negativi dell'hosting condiviso sono enormi. Ti stai perdendo il potere di compositore, git e artigiano (se si tratta di un'app L4). –

4

Non ho ancora distribuito un'applicazione L4 a questo punto, ma si imbatterà in problemi poiché non ho accesso git/compositore anche sul mio server host. A meno che non ci sia qualcosa di intelligente, FTP/SSH è la mia unica strada per ottenere i miei file sul server.

La cartella /vendors è assolutamente necessaria per il corretto funzionamento dell'applicazione. Pensa ai fornitori come alla cartella /core in altri framework. Tutti i lavori pesanti di Laravel sono gestiti attraverso i pacchetti contenuti all'interno di /vendors, quindi senza la cartella la tua app andrà in crash.

8

È meglio utilizzare

composer create-project laravel/laravel --prefer-dist <project directory> 

per creare il progetto. L'utilizzo dello spazio dir del fornitore inizierà a soli 10 MB. (L'ho appena fatto qui ed è quello che ho scaricato per me).

E sembra che si può anche:

composer update --no-dev --prefer-dist 

Per ridurre l'utilizzo dello spazio attuale progetto.

Ma ... la directory del fornitore e tutte le sue sottodirectory di primo livello sono obbligatorie (purché si utilizzino tutti i pacchetti installati), ma ci sono alcune sottodirectory al loro interno che è possibile ignorare facilmente durante la distribuzione, come ad esempio:

*/examples/* 
*/docs/* 
*/docs2/* (Doctrine) 
*/tests/* 
*/test/* 
*/Tests/* (Carbon) 
*/swiftmailer/swiftmailer/notes/*