J'essaie de bien comprendre la commande Laravel (5.1) artisan optimize
et les meilleures pratiques, mais la documentation semble manquer. Composer n'est pas installé sur le serveur de production. Par conséquent, je veux savoir en particulier quels fichiers sont modifiés ou créés lors de l'exécution de artisan optimize --force
sur un développement qui doit être mis en production. L'objectif étant de ne pas exploser l'application en production! Après avoir exécuté la commande, je constate que les fichiers suivants ont été modifiés:
\bootstrap\cache\compiled.php
\vendor\composer\ - the entire directory
\vendor\autoload.php
Est-ce que je réfléchis trop ou est-ce que je mets simplement ces fichiers en production et je suis prêt à partir? En outre, quelle est la meilleure pratique pour savoir quand exécuter artisan optimize
? Chaque fois qu'un nouveau modèle est créé? Qu'en est-il des contrôleurs, des itinéraires et des classes d'assistance?
Enfin, je vois que le fichier \bootstrap\cache\compiled.php
contient 548 Ko et presque 17 000 lignes! Est-ce vraiment considéré comme optimal?
[edit - Comme @crishoj le dit, à partir de Laravel 5.5, l'optimisation de l'artisan n'est plus nécessaire]
La pratique Laravel normale is consiste à installer le composeur sur votre serveur de production.
Voici les étapes Envoyer (réalisé par le créateur de Laravel) prend pour déployer une application en production - je les ai annotées ci-dessous:
# 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
À partir de Laravel 5.5 , php artisan optimize
n'est plus nécessaire.
Vous pouvez également tirer parti des packages laravel pour optimiser facilement votre application en mettant en cache les partiels de page.