LoginSignup
8
5

More than 5 years have passed since last update.

laravel5でrails consoleのようなREPLを利用できるようにする

Last updated at Posted at 2016-12-09

下記コマンドで本記事の内容と同じものが実現できる。
(自分の昔の記事で記載していたことに今日気付いた…。)

% 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
8
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5