PageControllerおよびActionの隔離

PHP関西のセミナーでお話がでたので以下の2つを入れようと考えています。

  1. Controllerに特定のActionのみ実行するように指定する
  2. Action側で特定のスクリプトからしか呼び出しを許可しないように指定する

1つ目はController#execute()の引数で特定のActionを指定し、リクエストパラメーター「action」でなにを指定されても指定されたActionしか実行しないようにする。これはMojavi2と同じやり方ということになる。Mojavi3では「PageWebController」という別クラス(受け付けるActionを特定しないものは「FrontWebController」というものになる)になっている。ま、MapleではControllerで継承関係をつくるほどいろいろやってないし。

2つ目はAction側の設定ファイル(maple.ini)で特定のスクリプトからしか呼び出しを受け付けないというFilterを追加しようというもの。例えば「member_form」というActionは「/member/form.php」というスクリプトからしかリクエストを受け付けないというもの(他のスクリプトから呼び出されたら、「403 Forbidden」を返すようにしようかと)。このFilterを使うことにより、テスト段階のActionを隔離したり、Apacheのアクセス制限と組み合わせれば、特定のActionに対してアクセス制限したということになるだろうと思う。

これらをいれて、3.0.1というのを近々リリースしたいと思う。(忘年会で「ライセンスちゃんとつけてよー」というお話を強く言われたので今度はちゃんとライセンスをつけますです。忘年会でみなさんにご意見いただいたとおりPHPライセンスとしたいと思います。)