表紙 | 新規 | 一覧 | RSS | 検索 | 閲覧履歴 | 作成履歴 | 更新履歴

main関数 - YukiWikiベースのPonyWikiのソースを読んでみる その02

差分表示


[[YukiWikiベースのPonyWikiのソースを読んでみる]] その2
[[YukiWikiベースのPonyWikiのソースを読んでみる]] その02


変数等の設定項目を抜けると&verb(&main)関数が呼ばれ終了します。

---(
##############################
# &test_convert;
&main;
exit(0);
##############################
---)

main関数では何を行っているのかと言うと、各項目の初期化を行い引数に応じてそれぞれの処理を呼び出します。&br()
- [[TrackBack]]
- %command_doで設定した各機能
- 上記以外であればFrontPageの表示

&verb(&{$command_do{$form{mycmd}}};)が何をやっているかと言えば、&verb($command_do{})のハッシュに対して、&verb($form{mycmd})をキーに読み込んだ結果を関数名として実行しています。

例えばCGIへの引数に&verb(mycmd=edit)がある場合、引数は%formに保存されるので&verb($form{mycmd})の値はeditになります。それをキーに&verb(%command_do)を読むと(&verb($command_do{'edit'}すると))、&do_editのポインタが渡され処理が実行されるという流れのはずです。

---(
sub main {
    &init_resource;
    &open_db;
    &init_form;
    &init_plugin;
    if (&is_trackback) {
        &response_trackback;
    } elsif ($command_do{$form{mycmd}}) {
        &{$command_do{$form{mycmd}}};
    } else {
        &do_FrontPage;
    }
    &close_db;
}
---)

- init_resource関数
- open_db関数
- [[init_form関数]]
- init_plugin関数
- is_trackback関数
- response_trackback関数
- [[do_FrontPage関数]]
- close_db関数

-----
[[#rtrackback]]

先頭へ