2015-08-08 24 views
11

Sto cercando di comprendere pienamente il comando e le migliori pratiche di Laravel (5.1) artisan optimize, ma la documentazione sembra carente. Non ho installato Composer sul server di produzione, quindi, nello specifico, voglio sapere quali file vengono modificati o creati quando si esegue artisan optimize --force sullo sviluppo che deve essere trasferito alla produzione. L'obiettivo è di non far saltare l'app in produzione! Dopo aver eseguito il comando, vedo sono stati modificati i seguenti file:Laravel artisan ottimizza le best practice

\bootstrap\cache\compiled.php 
\vendor\composer\ - the entire directory 
\vendor\autoload.php 

Am I overthinking questo, o devo solo spingere questi file di produzione e sono pronti per partire? Inoltre, qual è la migliore pratica in merito a quando eseguire artisan optimize? Ogni volta che viene creato un nuovo modello? Che dire di controller, rotte e classi helper?

Infine, vedo che il file \bootstrap\cache\compiled.php è un enorme 548KB e quasi 17K linee! È davvero considerato ottimale?

+0

Si può semplicemente spingere compililed.php e la cartella del fornitore alla produzione per poter essere distribuita. E questo avrebbe in effetti alcuni vantaggi rispetto all'uso di compositore/artigiano per farlo, ad esempio non affidandosi a server di terze parti aggiuntivi per distribuire l'app. Ma non ho mai sentito nessuno che lo faccia in quel modo, quindi esiterei a definirlo una "best practice". –

risposta

12

La normale pratica di Laravel è per avere il compositore installato sul server di produzione.

Questi sono i passi Envoyer (fatte dal creatore di laravel) batte schierare un app sulla produzione - li ho annotato qui di seguito:

# Install application dependencies, such as the Laravel framework itself. 
# 
# If you run composer update in development and commit the `composer.lock` 
# file to your repository, then `composer install` will install the exact 
# same versions in production. 
composer install --no-interaction 

# Clear the old boostrap/cache/compiled.php 
php artisan clear-compiled 

# Recreate boostrap/cache/compiled.php 
php artisan optimize 

# Migrate any database changes 
php artisan migrate 
+4

compositore installa --no-interaction --no-dev per l'ottimizzazione della produzione. – suncoastkid

+0

_that offre prestazioni migliori rispetto a centinaia di piccoli file._ hai prove o parametri di riferimento quando usi APC? Non mi è chiaro il motivo per cui sarebbe utile. – Yehosef

+0

@Yehosef Solo esperienza personale; è un test banale da eseguire, però. Solo tempo il tuo sito con e senza 'bootstrap \ cache \ compiled.php'. Assicurati di aggiornarci con le tue nuove prove! Sono un grande fan dei benchmark - guarda i miei benchmark Laravel su https://github.com/claar/laravel-benchmarks/ –