Sledge2に思いを馳せて

| コメント(5) | トラックバック(0)

ちょっと前に#!shebang.jpさんが「Sledgeで気になるとこ」というエントリを書いてましたが、これに被せる形で、Sledge2で個人的にやりたいと思ってるものを書いてみたいと思います。

  • Sledge::Helperを導入
  • qootas.orgのせきむらさんが作ってらっしゃったSledge::Helperをマージしたいなぁ。
  • Pagesをもうちょっと実際のページ生成ロジックと離したい
  • Sledgeで開発していて困るのが、Pagesに書いたコードをスクリプトから呼びたいときなどむりくりやらなければならない。なぜならSledgeはビジネスロジックがほぼPagesと等価となっているからである。そこをもう少し離してやりたい。
  • redirectのあとのコードを実行しないように
  • にぽたん研究所所長も、#!shebang.jpの方も言ってましたが、だれもが思うところですね。現状のSledgeでは、Pagesで$self->redirect('/foo');とやったあともコードが実行されてしまいます。それをどうにかしたし。バグの温床にもなりやすいですし。
  • プラグインの機構を盛り込みたい
  • 現状Sledgeのプラグインは import ベースなものが多いです。たしかにこれはperlの利点なんだけど、importとか使わなくても最初からプラグインを追加できる機構を盛り込みたいなと思います。個人的には、CatalystのNEXTみたいなやつカッコイイななんて思います。チェイン オブ レスポンシビリティ?(よくわかってない…)

今のところ思うところはこんな感じです。
#思い付いたものを貯めこまないで、排出してみるベースで書きました。

トラックバック(0)

トラックバックURL: http://blog.clouder.jp/mt/mt-tb.cgi/511

コメント(5)

Sledge2 とは関係ないですが、mod_rewrite と Sledge::Dispatcher を一緒に使うと、期待通りの動きをしてくれないです。

Project::Dispatcher 作ってごにょごにょっと対応してますけど、こういうネタは ML の方が良いのかな。

あーそういう場合があるかも。
例えばどんなときですかね?

DynamicとPropertiesどっちつかってます?
Dynamicは結構挙動が制限されるので微妙っちゃ微妙ですね。

RewriteRule ^/foo/(.*) /foo?key=$1
というルールで
/foo/bar
にアクセスしたとき、
Hoge::Pages::Index->new->dispatch('foo');
となってほしいのに
Hoge::Pages::Foo->new->dispatch('bar');
になってしまいますね。

仕方ないので、
RewriteRule ^/foo/(.*) /foo?key=$1 [E=REWRITED_URI:/foo]
とかってやって
Hoge::Dispatcher
作って
my $uri = $ENV{REWRITED_URI} || $r->uri;
とかって無理やりやっていて、かなりきもいです。

ちなみに Dynamic です。

RewriteRule ^/foo/(.*) /foo?key=$1
ってやると、mod_rewriteでマッチはしていて、一応/fooをみつけにいくんですけど、ディレクトリ(もしくはファイル)を見にいってしまって、でもそんなディレクトリ(もしくはファイル)はないので元の/foo/barを表示しちゃう感じですね。

上記のような使い方をしていないのであれなんですが、もしやるとしたらapacheをreverse proxyとwebappという役割毎に2つ立ち上げて、reverse proxy側でやるべきじゃないかなと思います。

解決にはなってませんが…。

どうもです。
たしかに reverse proxy 側でやれば問題なしですね。

コメントする

検索

広告

OpenID対応しています OpenIDについて
Powered by Movable Type 4.22-ja