PSGIなんでこんなものを書いてるんですか最近はPSGI/Plackが普及してきてかなりWAFが書きやすくなってきたようですね!(僕がWAF触り始めたのは最近ですが。)僕は最近はid:tokuhiromさんのAmon2がいい感じだなーと思って個人的に使っています。置き換えるのは結構骨が折れたりします。Sledgeを使ったプロジェクトで以下のようなコードがあった場合、Amon2で同じようなことをするためにはtriggerのあたりをどうするかで、結構骨が折れます。likeなid:nekokakさん作のKamuiを使うという手もありますが、KamuiのControllerのメソッドのprefixはdo_となっていて、これは、Kamui::Web::Handlerのdispatchメソッドにハードコードされているので、これはオーバーライドしたりしない限り変えることはできないので、これもやはり骨が折れます。・Sledgeから移行しやすいWAFがほしい!って思ったりしたので僕が開発を始めたのがAtelierというWAFです。いうのは建前で、俺俺WAF作ってみたかったって思ったのが一番大きな理由だったりします。Frameworkです。アトリエって読みます。標準ではDispatcherとPages(Controller)しか提供しません。Atelierは最小限の処理でアプリケーションを動かすために、最小限の機能しか備えていません。それ以外の必要な機能はすべてPluginから利用するスタイルです。ViewやTriggerすらもPluginで実装されています。最小構成でのサンプルコードは以下のようになります。];}1;自由にHTTPレスポンスを作りたい極めて特殊なケースでは、上の例のようにPSGIのレスポンスを直接返す事で問題を解決出来ます。Pages以下以外から直接例外的にレスポンスを返したい場合はAtelier::Plugin::Exception;のresponseというsuger関数で同様のことができます。(こちらは即時にレスポンスを返します。出力するデータを$self->stash、(もしくは__PACKAGE__->stash)に格納してあげればそれだけでデータをJSONにしてHTTPのレスポンスとして返すことができます。出力するデータを$self->stash、(もしくは__PACKAGE__->stash)に格納してあげればそれだけでデータを任意のテンプレートエンジンで処理してHTTPのレスポンスとして返すことができます。ドキュメントを書けていないので詳しくはソースを読んでみてください。なんでこんな低機能にしたの?柔軟性をもたせるためです。・Sledgeで使っていたプラグインはなるべくそのまま使いたい。・動かなくなったら嫌なのであんまり書き換えたくない。いった考えがありました。Sledgeと殆ど同じルールで書けるWAFが欲しかったのです。本当に最低限の機能だけ実装し、あとはPlugin等で新たにメソッドをはやしたり、オーバーライドしたりすることで、Sledgeに近づけていけるようにする。いう事が出来るように意識して作りました。Pagesは全体的にオーバーライドしやすくなっていると思います。目的に応じてオーバーライドして使ってください。Atelierについてリポジトリはgithubで公開しています。Entries最近の人気記事Archiveはてなブログをはじめよう!karupaneruraさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。