第2回 コードリーディング

今回も前回に引き続きFuelPHPを読んだ。
FWだと全体を把握するのに時間かかるから、
次からはもう少し小さめのライブラリとかにしようと思う。

【Event】
イベントの発火方法。
\Event::instance()->has_events('request_created') and \Event::instance()->trigger('request_created', '', 'none');
有無を確認して起動するだけ。
内部的には call_user_func() を利用している。
これはドキュメント通り。Ver1.6のやつだけど。
http://fuelphp.jp/docs/1.6/classes/event.html


【ルーティング】
ルーティングはURLをパースして得た Controller, Method を ReflectionClass を利用して実行している。
Controller, Method は hasMethod(), class_exists() でチェックされている。
チェックに引っかかると例外が飛ぶ。
ReflectionClassっていうのを知らなかったな・・・。
$response = Request::forge()->execute()->response();
のexecute()で return $this; して response() で responseオブジェクトを取得する書き方もあるのか。
自分だとそのままresponseオブジェクトを返しそう。


【Input::get()】
本体はCoreのArrクラス。
ArrクラスはArrayを便利に扱うためにCoreで用意している便利クラス。
ピリオド区切りで$_GETにアクセスできるようになっている。
キーを配列にした場合は再帰的に呼び出している。
デフォルト値にクロージャを指定した場合は \Fuel::value() でチェックして実行してくれる。