メシのタネ

メシのタネになる、Laravelや設計思想の技術配信サイト


Laravel Idea 無料になった便利ツールの主要機能を大解説


  1. Laravel
  2. Laravel Idea 無料になった便利ツールの主要機能を大解説

結論:導入コスト0で日々のイラつきが確実に減る。Eloquentの補完とナビゲーションで思考が止まらない。

  • 刺さるところ:Eloquent補完/route⇄controller⇄viewジャンプ/model⇄migration・factoryジャンプ/Blade補完 / ファイルジェネレートのSuggestがエグい
  • 効いた場面:調査系(コードリーディング)・ファイル作成の手軽さ
  • 注意:初回インデックスはファイル多いと重たくなる。
  • 総評:PhpStorm使いなら入れて損なし。作業の中断が減ってストレスが若干少なくなるよ!

自分の環境(参考)

  • IDE:PhpStorm(IntelliJ IDEA UltimateでもOK)
  • 対象:Laravel 10/11/12 系プロジェクト複数
  • 規模:中~大(モデル・マイグレーション・Factoryがそこそこ多い)

Eloquent 補完

あるあるUser::where('…')でカラム名が出てこず、脳内キャッシュを掘り返して数秒ロス。
Laravel IdeaUser::where('の時点でモデルのカラム候補が出る。続くチェーン(orderBypaginate)も淀みなくつながる。

💡注意:これをやる際には、

  • + Shift + . (Mac)
  • Ctrl + Shift + . (Windows)

のどちらかを実施して、Eloquent Helper Code を作成しないと補完されません。

$users = User::where('status', 'active')
             ->orderBy('created_at', 'desc')
             ->paginate(20);

例えばこういうクエリ書く時にstatus ってカラム名の候補が出てくるのでタイプミスが消えます。

こんな感じっす。

コントローラからルート定義に飛べる

あるある:このControllerのエンドポイントなんだっけ?
Laravel Idea : Controllerにアイコン出るからクリックすれば飛べる

この19行目のアイコン押すとルート定義に飛べるので、エンドポイントなんだっけ?ってなってもすぐ見つけられます。
Inertia使って無ければViewも同じように見つけられるらしいんだけど、今回は未検証。

Modelの関連も見やすい

あるある:関連ファクトリーとか、Migrationなんだっけ。探すのだる。
Laravel Idea : 関連ファイルが一目瞭然

こんな感じであのアイコンクリックすれば、関連ファイルに飛ぶことが出来ます。

たねまる

ここまでは序の口かな〜。

コード生成関連

ランチャーを出す方法は以下

  • + Shift + , (Mac)
  • Ctrl + Shift + , (Windows)

こんなんが出てくるはず。
試しにcとか打つと

ずらずらずらと出てきますので、Create Classでも選択してEnter を押すとこういう画面になります。

ここもOK押すと、どこにファイルを作成するのかを設定することになります。

こんな感じで既にあるディレクトリから候補を出してくれて超便利。適当にSample作ってみます。

SampleIdとか作ってみますと

こんな感じでClassが作られます。(readonlyとかprefixはつけられないみたい)

Settingクリックするとこの画面ですが、suffixは設定できるみたいっすね。

Test作るとこんな感じ。(ベースクラスはSettingで調整できます。)

文脈メニュー

例えばmodel のところでこのショートカットを押すと( + n

こんな感じでその文脈に応じた生成メニューが出ます。
この画像だと35行目のLaravel Ideaのロゴが出てる行でショートカット押さないと出なかった。

class Role とか定義が書いてある行で( + n)やると、関連するオブジェクトの生成ができるっぽい。
Bladeでもできるらしいのだけど、自分は出なかった。Inertiaだからかなぁ…。

終わりに

というわけで、Laravel Idea を使い始めました。
他に機能があるのかわかりませんが、とりあえず調べた範囲でこんだけ使えれば個人的に満足です。

以上。お疲れ様でした〜。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください