実行環境抽象化に関係ありそうなところだけを抜き出し。Catalyst.pm しか見てなくて、大雑把に把握しかしてないから多分抜けてるところがあり。
というかまあ Catalyst の実行環境抽象化部分だけ取り出してモジュールができないかなーと思って大体の処理の流れをつかむためにメモっただけなんで正確性はアレ。まあこんな感じかなーとつかむのには良いかも。
とりあえず Catalyst のコードは追うのは面倒だけど結構分かりやすい。
Catalyst run handle_request prepare if ( engine.can('prepare') ) { engine.preapre } else { prepare_request prepare_connection prepare_query_paramters prepare_headers prepare_cookies prepare_path unless ( config.parse_on_demand ) \{ prepare_body } prepare_action } disaptch dispatcher.dispatch finalize if ( engine.can('finalize') ) { engine.finalize } else { finalize_upload if ( error.last >= 0 ) { finalize_error } finalize_headers finalize_cookies engine.finalize_headers if ( request.method eq 'HEAD' ) { response.body = '' } finalize_body }