モズニオンが公開していると言っていたので1:30まで読む。
https://github.com/jpa-perl/yapcasia2014-app
どういうアプリかは、ヤップシーに行ったので大体知っている。
アプリを読むときは、まずapp.psgiから見てみる。今回の場合アプリの直下にapp.psgiがないので、scriptにあるのかなーと探してみたら、serverという名前の怪しいヤツがいた。
script/server
shell scriptでcartonを使ってetc/app.psgiをplackupしている ビンゴ〜
etc/app.psgi
アクセスログ、セッション、フレームワークとかがわかる。
エラーの出し方も、HTTPExceptionsを使うのだなあというのが分かる。
YAPCAppを見れば良さそうというのがわかったので読む。
lib/YAPCApp.pm
startup, setup_* あたりが最初に読み込まれるのだろうと予想して読む。
startup
まずstartupから。Mojoliciousの中で使われている。
https://github.com/kraih/mojo/blob/master/lib/Mojolicious.pm#L179
setup_*を呼び出してもろもろセットアップしている。
setup_*でパッと見よくわからないのは、とくにないのであとで見る。
helperをセットして、フックを追加している。
around_dispatchで、Localizerやcontainerの準備をしてるっぽい
setup_routes
URL一覧みたいな感じか
setup_xslate
Xslateの準備
functionがめっちゃ多い
setup_container
etc/container.plを読み込んでる。
DEPLOY_ENVによって読み込むファイルが増えたりする。
そのファイル自体がないので、とりあえず無視して進める。
あとhelperにgetを追加している
YAPCApp::Containerを使ってるみたいだったので軽く読んだら、Scope::ContainerとかObject::Containerとか使ってない独自実装だった。
まとめ
1:30になってしまった。もう寝る時間だ!
大体どういう風になっているかというのはわかった気がする。
次はsetup_routesからControllerとactionを読んでいく。
(次があれば…)