下記コマンドで本記事の内容と同じものが実現できる。
(自分の昔の記事で記載していたことに今日気付いた…。)
% php artisan tinker
目的
laravel開発中に、rails consoleのように、プロジェクトの設定が反映されたREPLで簡単な動作確認をしたくなった。
公式サイトにもググってもそれっぽい記述が見付からなかった。
ちなみに、laravelプロジェクトの直下で% psysh
としてREPLを立ち上げてもlaravelプロジェクトの設定は反映されない。
これらの設定も反映されたREPLを立ち上げたい。
実現方法
psyshを実行するartisanコマンドを作成して対応した。
app/Console/Commands/PsyshConsole.php
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class PsyshConsole extends Command
{
protected $signature = 'psysh-console';
protected $description = 'Run console by psysh';
public function __construct()
{
parent::__construct();
}
public function handle()
{
eval(\Psy\sh());
}
}
app/Console/Kernel.php
protected $commands = [
<省略>
Commands\PsyshConsole::class,
<省略>
];
実行方法
% php artisan psysh-console
これで、psysh上で色々と動作確認できる。
感想
本当にこんな解決方法しかないのか?
複数人で開発してるプロジェクトだと、commandを追加するのが許されないケースもありそうだし、ローカルでいちいち自分で追加するのも微妙だな。
デフォルトで提供されてるんじゃないかと思うし、そうではなくとも簡単に実現できる方法があるはずだけど、それを発見するまではこの方法で凌ぐことにする。
冒頭でも書いたが、下記コマンドで実現可能。
やっぱり用意されてるわな。
% php artisan tinker