🍅
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