ChiffonのContainer依存とかその辺が割といけてない感じがしたので、Amon2を参考に書き直してみた
GitHub - takuji31/p5-Chiffon: Web application framework for PSGI/Plack
- Chiffon::Coreを廃止、一部のユーティリティーメソッドはChiffon::Utilsに移動
- Containerは非推奨に
- DispatcherはRouterに名称変更、Dispatcher::Simple相当のモジュールは廃止、Dispatcher::RailsLike相当のものをデフォルトに
- ContextとChiffon.pmを統合
- 例外クラスを追加、detachを置き換える
- トリガー機能をモジュール化
Chiffon::Coreを廃止
useすると勝手にuse strict;use warnings;してくれて、いくつかメソッドをエクスポートしてくれるものだったが、微妙な感じがしたので廃止
メソッドのいくつかはChiffon::Utilsに移動した
Containerは非推奨に
プロジェクトにはContainerが必須だったが、微妙な感じがしたのでry
設定ファイルはChiffon::config()から、ホームディレクトリはChiffon->base_dirから読めるようになっている
DispatcherはRouterに名称変更、Dispatcher::Simple相当のモジュールは廃止、Dispatcher::RailsLike相当のものをデフォルトに
基本的な設計はCakePHPのRouterを参考にした
Router部分のコードはRouter::Simpleを参考にしつつさらにシンプルにした感じ
ContextとChiffon.pmを統合、トリガー機能をモジュール化
ここら辺はAmon2そのままですね、Amon2よりは柔軟性なくなってますが
例外クラスを追加、detachを置き換える
ほげほげしてdetach;してたのはすべてChiffon::Exception::HTTP::なにか で置き換えられるようになっているつもり
固定のヘッダー投げたかったらChiffon::Exception::HTTPを継承したクラスを作るといいです(Flashとか)
前のものよりはきっと使いやすくなってるはずなので、是非使ってもらえると…