• 締切済み

php @methodについて

題名の通りですが@methodってなにものなんでしょうか? 継承とかimplementsしたクラスのメソッドが使えるってことなんでしょうか?

みんなの回答

回答No.1

質問文から以下の二つが思い当たりますがどちらでしょうね。 ■laravelのテンプレートエンジンBladeで出てきたものの場合 https://qiita.com/rope19181/items/3231278950ba735c38e3 こちらのQiitaの記事が参考になると思います。 Formタグで送出されるHTTPメソッドが、POST、GETしか対応していないので、PUT、DELETEに対応するために使うようです。 ■クラスのブロックコメントに出てきた場合 それはPHPDocコメントになりますが、 このクラスでは@method以下に記載のメソッドが実装されている、ということを「便宜上伝えている」ものになります。 これにはいくつかメリットがありますが、私が思いつくのは、 ・クラスの実装の中身を見なくても大体使い方がわかる ・VSCode、Eclipse、netbeansなどのIDEで、それが解釈されるので、インテリセンスが効く でしょうか。 例えば、 <?php /** * @method getHoge() */ class Moge { public function __call($method, $args) { if ($method === 'getHoge') return "hoge"; } } ?> このような場合、クラスに実装されていない「getHoge」が呼び出された場合、代わりに文字列"hoge"を返す といったことが表現されていますが、通常、IDEでメソッド名を文字列補完しようとしても、@methodで宣言されていなかった場合、補完してくれません。

すると、全ての回答が全文表示されます。

関連するQ&A