* 00:10
Model → View の転送を効率的に[sledge]:
ちょっとした妄想。
[pre]
sub dispatch_foo {
my $self = shift;
my $pager = Your::Model->pager(20 => $self->r->param('page')||1);
my @data = $pager->retrieve_all;
$self->tmpl->param(
pager => $pager,
data => \@data,
);
}
[/pre]
という処理を、抽象化して
[pre]
use Sledge::Plugin::Pager;
sub dispatch_foo {
my $self = shift;
$self->pager('Your::Model')->retrieve_all;
}
[/pre]
と書けるプラグインを書いたことがあったんだけど、これを汎化できない
かと妄想中。
[pre]
sub dispatch_foo {
my $self = shift;
$self->ddd('Your::Model::Blog')->search(foo => $self->r->param('foo'));
}
[/pre]
とかするだけでよかったら、かこよくないすか?
# ddd は仮名だよ
View に渡す命令なしで渡せてるんがおもろし。
[pre]
sub dispatch_foo {
my $self = shift;
$self->model('Blog')->search(foo => $self->r->param('foo'));
# => $self->stash(blogs => $self->model('Blog')->search(foo => $self->r->param('foo')));
$self->model_pager('Blog')->retrieve_all;
}
[/pre]
こんなインターフェースとかどうなんでしょうなぁ。
UNIVERSAL::moniker->plural_moniker とか呼ばれるイメージ。むしろ、
CDBI を拡張して、sth_to_object を(ry という手もある??


