2009-05-06
PHPのリフレクションってどうなんだろ
php | |
PHPのリフレクションって使われてるのかな。PHPのマニュアルでもわかりづらい場所に解説があって、決して重要視されてる感じがしない。
ちなみに、karintoではメソッドの引数の個数に応じてkarinto_sessionのインスタンスを生成するかどうかを判断している箇所があって(karintoクラスのrunメソッド)、そこでだけリフレクションを使ってる。
<?php if (method_exists($page, $method_name)) { $ref = new ReflectionMethod($page_name, $method_name); if ($ref->getNumberOfParameters() < 3) { $ref->invoke($page, $req, $res); } else { $session = new karinto_session($res); $ref->invoke($page, $req, $res, $session); } }
便利と言えば便利なんだけど、元々PHPにはcall_user_funcとかproperty_existsとかクラス・関数操作用の関数群があるので、余程の事情がない限りリフレクションを使う機会って多くない気がする。
トラックバック - http://d.hatena.ne.jp/hiro_y/20090506/1241547733

一般のコードではまずお目にかからないかな…と思ってたり。