マジックメソッド…!そういうのもあるんですね。
ちょっと複雑で深追いできませんでしたが、__call()メソッドの中でVersionオブジェクトに渡しているということはわかりました。
Versionクラスを継承している様子もなく、どうなっているのかわからなかったので助かりました。
いろいろ調べてみたいと思います。ありがとうございます!
Fileクラスで定義されていないメソッドが使える理由
2017年4月12日 at 13:35
concrete5のというより、phpの基本的な質問になってしまうかもしれないんですがすみません。
例えば、画像の横幅を取得したいときに、
$image = File::getByID(hoge);
などして取得したFileオブジェクトに対して
$image->getAttribute("width");
みたいなことをすると思います。
ドキュメントを見ても、FileクラスのメソッドとしてgetAttribute()というものは定義されていません。
(同じ名前空間のVersionクラスには定義されているようなのですが…)
どういう仕組みでこのメソッドが使えるようになっているのでしょうか?
仕組みがわからないまま使うのはモヤモヤするので、詳しい方、ご教授いただけると幸いです。
タグ:
Your post has been saved and will be published after approval by the forum moderator.
takuro hishikawa
Re: Fileクラスで定義されていないメソッドが使える理由
それ以外にも、クラスを継承している場合で親クラスにメソッドが存在する場合もあります。