Edited at

[Laravel]デプロイ時の最適化


Laravelの最適化

Laravelのプロジェクトをデプロイする際にやっておいたほうがいい最適化。

至らない点もあるかと思いますので、

参考程度でご覧ください。


参考サイト様

Laravel を高速化というか最適化する




  • 最適化のコマンド実行見本

    // ソースコードの配置
    
    .
    .
    .
    // ソースコードの配置完了後

    // composer.lockの内容でパッケージのインストール
    composer install
    // configディレクトリ以下の設定ファイルをキャッシュ
    php artisan config:cache
    // ルーティング定義をキャッシュ
    php artisan route:cache



各種コマンドの説明は以下を参照


composer install


  • composer.lockにもとづいてパッケージをインストールする

  • インストール後は以下を行っている


    • composer dump-autoload

    • php artisan clear-compiled

    • php artisan optimize




composer dump-autoload


  • autoloadを自動で生成してくれる


    • autoload_classmap.php

    • autoload_files.php

    • autoload_namespaces.php

    • autoload_psr4.php

    • autoload_real.php



  • 新たなクラス定義やファイル定義を行うたびに実行する

  • composer installでパッケージインストールと同時に実行される


artisan clear-compiled


  • 以下2つのファイルを削除する


    • /bootstrap/cache/services.json

    • /bootstrap/cache/compiled.php




artisan optimize


  • composer dump-autoload --optimize の実行

  • フレームワークのコードを結合して一つのファイルに纏める


    • /bootstrap/cache/compiled.php


    • /config/compile.php の files ブロックににキャッシュ対象のクラスを書けば一緒に結合される




Laravel5.5のアップグレードガイドより

Screenshot from Gyazo


※いずれ optimize は削除されるようなので要注意


artisan config:cache


  • 設定ファイルをキャッシュする

  • config 以下の設定ファイルを「var_export」して以下ファイルに出力


    • /bootstrap/cache/config.php




artisan route:cache


  • ルーティング定義をbase64_encodeで以下ファイルに出力


    • /bootstrap/cache/routes.php




  • 注意点:クロージャ定義のルーティングがあると、最適化されずエラーになる



    • /bootstrap/cache/routes.php が作成されず通常のルーティングアクセス

    • アクセスできなくなるわけではない




artisan view:clear


  • Bladeのキャッシュを削除する



    • /storage/framework/views の中のファイルたち