PHP
laravel

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

More than 1 year has passed since last update.

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 ブロックににキャッシュ対象のクラスを書けば一緒に結合される

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 の中のファイルたち