LoginSignup
7
6

More than 5 years have passed since last update.

laravel-ide-helperを使ってLaravelの自作Facadeを補完できるようにする(PHP Storm編)

Last updated at Posted at 2015-09-30

なぜこの記事を書いたのか

LaravelのFacadeを使うときにメソッドの補完ができなくて本当につらかったから。

この記事を読むと何ができる?

  • 自作のFacadeがエイリアスを使うが補完できるようになる。
    • barryvdh/laravel-ide-helperを使う。
    • 本記事はPHP Stormの利用を前提としているが、laravel-ide-helper自体は他のエディタでも使える。

laravel-ide-helperで、できたこと

注意:すべての機能を解説しているわけではありません。試したことだけ書いています。

  • config/app.phpにエイリアスをした時に限り、自作Facadeが補完できる。
  • エイリアスを書かずに補完はできない(っぽい)
    • \path\to\MyClassFacade::myMethodみたいなのはできなかった(エイリアスを強制される?)
  • providerに自作Providerを登録しておけば、\App::make(\path\to\MyClass::class)->superMethod()のようなメソッド名が補完できる。
    • この場合\path\to\MyClassの補完はできないので手動で頑張る。

自作Facadeを作って補完する手順

事前準備

公式ページの手順に従いcomposerでlaravel-ide-helperをインストールする。

Facadeを作成してアプリケーションに登録する

公式ページのFacadeの作り方にのっとって作る。この項目はなぜか最新のドキュメントからは削除されている。

  • 自作のFacadeを適当なディレクトリに作る。
  • 自作のFacadeをconfig/app.phpのaliasに登録する(仮にこの名前をMyClassとする)。
  • 自作のProviderを適当なディレクトリにつくる。(公式ページのようにartisanコマンドを使うとapp/Providersに作られる)
  • 自作のProviderをconfig/app.phpのproviderに登録する。

補完を試す

  • php artisan ide-helper:generate php artisan ide-helper:metaを実行
  • \MyClass::superMethodが補完できるようになっていれば成功。
    • \Myあたりまで書けばどんどん補完していける。
7
6
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
7
6