Ethnaのソースコードを読み解く 第3回 Ethna_Controller::main
Ethna_Controller.php
いよいよ、Ethnaの本体とも言うべきEthna_Controllerです。前回、index.phpを見るとこう書いてありました。
Sample_Controller::main('Sample_Controller', 'index');
これは、こう書くのと同じです。
(Sample_Controllerクラスにはmain関数が存在しないので、親クラスのmain関数が実行される。)
Ethna_Controller::main('Sample_Controller', 'index');
では、Ethna_Controllerを覗いてみましょう。さすがにEthnaの司令塔(コントローラ)というだけあって、ボリュームがあります。
しかし今は気にしない。main()関数を探します。
お、あった。
function main($class_name, $action_name = "", $fallback_action_name = "")
{
$c =& new $class_name;
$c->trigger($action_name, $fallback_action_name);
}
これに、先ほどの値が放り込まれてこうなります。
function main('Sample_Controller', 'index', "")
{
$c =& new Sample_Controller;
$c->trigger('index', "");
}
カテゴリ:
Ethna