はじめに Laravelのいろいろなクラスに用意されているマクロは足りないメソッドをサブクラスを作らず直接追加する感じで使えてとても強力です。 実際に実行する関数の中身はPHPのクロージャーを使って与えるのですが、実行時には$thisをそのクラスに束縛しなおしているので、普通にそのクラスのメソッドで行えることは全部できます。private/protectedなメソッド/プロパティにもアクセスできます。 しかしPhpStormは束縛しなおされた$thisをうまく扱うことができないので、たくさん警告がでます。たとえば以前の記事「Eloquentでrelationのレコードの有無だけをサブクエリで取得したい」で定義したマクロはこんな感じになります。 黙らせる方法 いろいろ試して今使っている方法を紹介します。アイディアとしては「$thisの変化を指定できないのなら、マクロ定義を行うクラスに必要なメ