gallu’s blog

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

画面のfinalize

ふと気づいたのですが。よく私はCGI(含むPHPなどのサーバサイドスクリプト)を説明するときに、


HTML --(CGI)--> HTML
とまぁこういう風に説明をするのですが。でも、冷静に考えるとこれって間違っていて。実際には

HTML --- (CGI)
     ↓
     HTML
こうなんですよね。つまり「遷移先のHTMLに紐付いたCGIが動く」。言い換えると「その画面にinする直前の処理が指定できる」、或いは「ある特定の画面"に"移動する」。
で、たまにあるんですが。「ある特定の画面"から"移動するときの共通処理」。粒度をちょっと変えると「ある画面のfinalize処理」。………現状の仕組みじゃなかなか出来ないんですよねぇ(苦笑

(CGIa) --- (CGIb)
 ↑    ↓
HTMLa   HTMLb
こんなイメージでしょうか。CGIaの部分が、今までまったく実装されなかった部分。…でも、フレームワークに、これが実装出来そうなんですよ!!
具体的には。今現在MagicWeaponでは、こんな風にマッピングファイルかいてます。

index = modules/index.inc:index_page
これを、例えばfinaleze処理があるコマンドの場合、

list_put = modules/list_put.inc:list_put_page, modules/list_put.inc:list_put_page_fin
こんな風に書いてやれば「あとは勝手にフレームワークが処理」。
なんとなく、自分的には「ちょっとした大革命」クラスの発見!!
まぁ実装は若干手間そうですが、必要なタイミングで乗せたいかと。ってな訳でメモでした(笑