是否有方法/功能来为所有可用的Mojolicious路由编写自动启动子例程/方法?
也许是自动助手,但我还不知道该怎么做。
我认为这对于为几乎所有可用路由初始化数据库连接$self->{dbh}特别有用。所以我可以这样写:
helper DB => sub { state $dbh = Database->new };
get '/' => sub {
my $self = shift;
//$self->{dbh} // is automatically initialized & shared
};
get '/another_route' => sub {
my $self = shift;
//$self->{dbh} // also initialized & shared
};而不是:
get '/' => sub {
my $self = shift;
$self->{dbh} = init_db();
};
get '/another_route' => sub {
my $self = shift;
$self->{dbh} = init_db();
};附言:我正在使用Mojolicious:Lite,Perl5.16,SQLite3
发布于 2013-04-26 03:22:29
我不能百分之百地肯定我理解你的问题,helper做的几乎就是你想要的,但是你不应该使用对象的散列。下面是你如何使用你的代码:
helper db => sub { state $dbh = Database->new };
get '/' => sub {
my $self = shift;
$self->db->do_somthing();
};
get '/another_route' => sub {
my $self = shift;
my $dbh = $self->db;
...
};所有控制器、模板和主应用程序都可以使用helper方法。
https://stackoverflow.com/questions/16218287
复制相似问题