🥔

Laravel11 storageコマンド

2024/12/23に公開

この記事は Laravel11にあるartisanコマンドを全部調べる Advent Calendar 2024 23日目の記事です。

今回はstorageコマンドについて調べました。

環境

  • PHP 8.4.1
  • laravel/laravel 11.3.3
  • laravel/framework 11.33.2

アプリケーション用に設定したシンボリックリンクを作成する。

php artisan storage:link

実行するとアプリケーション用に設定したシンボリックリンクを作成します。

デフォルトではstorage/app/publicからpublic/storageへのシンボリックリンクを作成します。

advent-calendar-2024 % php artisan storage:link

   INFO  The [public/storage] link has been connected to [storage/app/public].

設定はconfig/filesystems.phpの次の配列に書くことができます。
配列の値を追加することで作成するシンボリックリンクも増えます。

config/filesystems.php
'links' => [
    public_path('storage') => storage_path('app/public'),
    public_path('images') => storage_path('app/images'), // 追加
],
advent-calendar-2024 % php artisan storage:link

   INFO  The [public/storage] link has been connected to [storage/app/public].

   INFO  The [public/images] link has been connected to [storage/app/images].
オプション 説明
--relative 相対相対パスを使用してシンボリックリンクを作成
--force 既存のシンボリックリンクを再作成
  • --relativeを付けると相対パスでシンボリックリンクを作成します
    ただし、このオプションを使うにはsymfony/filesystemパッケージをインストールが必要です
  • --forceを付けるとすでに作成済みのシンボリックリンクを一度削除して再度作成します

アプリケーション用に設定した作成済みのシンボリックリンクを削除する。

php artisan storage:unlink

実行すると作成済みのシンボリックリンクを削除します。

削除の対象はconfig/filesystems.phpの配列に設定しているキーの部分になります。
つぎの場合は、public_path('storage')とpublic_path('images')が削除対象です

config/filesystems.php
'links' => [
    public_path('storage') => storage_path('app/public'),
    public_path('images') => storage_path('app/images'),
],
GitHubで編集を提案

Discussion