🍅
Laravel11 pailコマンド/sailコマンド/tinkerコマンド
この記事は Laravel11にあるArtisanコマンドを全部調べる Advent Calendar 2024 18日目の記事です。
今回はpailコマンド/sailコマンド/tinkerコマンドについて調べました。
これらはlaravel/frameworkには定義しているものではなく、laravel/pail、laravel/sail、laravel/tinkerのLaravel拡張パッケージに定義しているコマンドです。
laravel/laravelのcomposer.jsonに書かれているパッケージだったので対象に含めています。
環境
- PHP 8.4.1
- laravel/laravel 11.3.3
- laravel/framework 11.33.2
- laravel/pail 1.2.1
- laravel/sail 1.38.0
- laravel/tinker 2.10.0
pail
アプリケーションログを出力する。
php artisan pail
実行するとstorage/logs配下のログファイルに出力しているアプリケーションログの内容をコマンドラインに出力します。

| オプション | 説明 |
|---|---|
--filter[=FILTER] |
ログの内容でフィルタリング |
--message[=MESSAGE] |
メッセージでフィルタリング |
--level[=LEVEL] |
ログレベルでフィルタリング |
--auth[=AUTH] |
ユーザーIDでフィルタリング |
--user[=USER] |
ユーザーIDでフィルタリング |
--timeout[=TIMEOUT] |
タイムアウトの時間を指定 |
-
--filterを使うとログレベル、メッセージ、スタックトレースなどの内容でフィルタリングできます -
--messageを使うとログのメッセージでフィルタリングできます -
--levelを使うとログレベルでフィルタリングできます
指定できるのは、emergency、alert、critical、error、warning、notice、info、debugです -
--auth、--userを使うとログインしているユーザーのIDでフィルタリングできます
sail:install
Laravel Sailをインストールする。
php artisan sail:install
実行すると利用するサービスを選択することができる。

選択後、アプリケーションルートにdocker-compose.ymlを作成します。
さらにSailが使えるように環境ファイル(.env)の書き換え、phpunit.xmlの書き換えを行う。

| オプション | 説明 |
|---|---|
--with[=WITH] |
インストールするサービスを指定 |
--devcontainer |
.devcontainerディレクトリを作成 |
--php[=PHP] |
PHPのバージョンを指定 |
-
--withを使ってインストールするサービスを指定できます(カンマ区切りで複数指定もできる)
指定した場合は最初の選択肢は表示しないです
php artisan sail:install --with=mysql,redis
-
--devcontainerを付けることでDevContainer内で開発するための必要なディレクトリ、ファイルを作成します -
--phpを使って開発環境のPHPのバージョンを指定できます(デフォルトは8.3)
php artisan sail:install --php=8.4
sail:add
サービスを追加する。
php artisan sail:add サービス名
実行するとsail:installコマンド同様にインストールするサービスを選択することができる。
選択後、アプリケーションルートにあるdocker-compose.ymlに追加する。
| 引数 | 説明 |
|---|---|
services |
サービスを指定 |
- サービス名を引数で指定することもできます(カンマ区切りで複数指定もできる)
指定した場合は最初の選択肢は表示しないです
php artisan sail:add mysql,redis
sail:publish
Dockerファイルを公開する。
php artisan sail:publish
実行するとLaravel SailのDockerファイル(docker-compose.yml)を公開します。
tinker
コマンドラインでLaravelアプリケーションの操作する。
php artisan tinker
実行するとコマンドラインでLaravelアプリケーションの操作できます。

| 引数 | 説明 |
|---|---|
include |
起動時にファイルの読み込み |
- 引数に任意のPHPファイルを指定するとtinker起動時に動かすことができる
たとえばecho.phpを用意し、引数で指定すると操作する前にecho.phpの内容が出力する
advent-calendar-2024 % cat echo.php
<?php
echo '起動前に動かす' . PHP_EOL;
----
advent-calendar-2024 % php artisan tinker echo.php
Psy Shell v0.12.4 (PHP 8.4.1 — cli) by Justin Hileman
起動前に動かす
>
| オプション | 説明 |
|---|---|
--execute[=EXECUTE] |
ファイルの実行 |
-
--executeを使ってファイルを指定するとTinkerで実行できる
advent-calendar-2024 % php artisan tinker --execute="var_dump(config('app.name'))"
string(7) "Laravel"
Discussion