0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PhpStormでのLaravelプロジェクトのコード補助

Posted at

概要

最近、デプロイ時にcomposerが2にバージョンアップされた状態で実行されてしまいpsr-4のエラーが出てしまい、今まで出ていた警告等を含めて対応することになりました。でも、何故か昔はLaravelのModelのwhereの様なメソッドが認識出来てたの認識(あまり気にしてなかったので勘違いの可能性も)でしたが参照が出来なく、phpstormのコード補助機能が使えないことにイライラして来ました。

参考:https://medium.com/legacybeta/using-composer-2-0-with-psr4-388b78b98aaa

composer.jsonを指定

composer.jsonで指定しているpsr-4について連携する目的で設定しますが、それ以外の利点もあるかと思います。

参考:https://pleiades.io/help/phpstorm/using-the-composer-dependency-manager.html#appoint-a-default-composer-json

「Preference」 > 「Languages & Frameworks」 > 「PHP」 > 「Composer」の順で入ります。
スクリーンショット 2020-10-30 12.52.23.png

こちらの画面です。プロジェクトのcomposer.jsonを設定したらOKです。自分の場合はpackageの更新をチェックする必要がないと思いましたので、「Check for available package updates」のチェックを外しました。それで「install」や「show log」も正常に動きます。

この設定でpsr-4の警告がずらっと出ると思いますので、対応は必須(composer2で問題が発生すると)だと思います。

LaravelのModelのコード補助

目的にModelのメソードのコード補助ですが、fluentクラスの補完も出来るようです。

参考1:https://www.sd-milieu.net/posts/laravel-completion/
参考2:https://github.com/barryvdh/laravel-ide-helper

開発モジュールのインストール

# composer require --dev barryvdh/laravel-ide-helper

参考した記事では「doctrine/dbal」も設置しますが、「barryvdh/laravel-ide-helper」をインストールすると一緒にインストールされます。

ide-helperの作成

# php artisan ide-helper:generate

Modelのコード補助を作成

# php artisan ide-helper:models --dir="app/Models"
Do you want to overwrite the existing model files? Choose no to write to _ide_helper_models.php instead (yes/no) [no]:
 > 

ここで英語質問が。。。一瞬固まりましたが、簡単に説明すると対応方法がPHPDocの記入で対応することで既にある全Modelクラスに直接書きます?それとも「_ide_helper_models.php」ファイルに書きますか?のことです。

「yes」を選択するのをオススメしますが、何かの理由で「no」を選択しないと行けない場合はPhpStormで以下の警告の対応をしないと行けないです。

multiple definitions exist for class

作成された「_ide_helper_models.php」を見ると分かると思いますが、同じクラス名が作られてそこにPHPDocが定義されていますので、PhpStorm的に同じクラスが複数あるからどちらなの?って感じです。これは対応方法は警告を表示しない方法しかないようです。

参考:https://stackoverflow.com/a/23079082

「Preferences」 > 「Editor」 > 「Inspections」 > 「PHP」 > 「Undefined」 > 「Undefined class」で「Don't report multiple class declaration potential problems」にチェックを入れます。
スクリーンショット 2020-10-30 13.20.42.png

最後に

上記の内容はphpの正しいコーディングをする為の補助機能を活性するものです、その警告をどのくらい直すかどうかは本人の責任です。この習慣を付ければいつの間に良いソースが出来るかと思います。

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?