Catalyst:全局初始化操作

时间:2014-02-25 17:46:44

标签: perl catalyst

在Catalyst框架中,有一个全局init sub(在任何控制器之前执行)。我希望从DB中设置一些config变量(如supper admin id或管理员电子邮件以进行GPG配置)。

我尝试使用auto和'begin'操作,但这些操作只是为其相应的控制器执行。

<{1>}文件中的

Root.pm

当我请求sub auto :Private { my ($self, $c) = @_; my $config = $c->model('DB')->resultset('Config')->single(); $c->config->{var1} = $config->var1; }; Controller2等其他控制器时,begin为空..

1 个答案:

答案 0 :(得分:1)

这种配置属于主程序,即MyApp.pm,因此在您考虑接受请求之前设置它。您通常不希望在每个请求周期中配置数据库连接。

您的问题并不完全清楚,但如果您 需要在每个请求上配置数据库设置,那么根控制器auto中的Root.pm子设置将是确保它发生在每个请求的顶部的地方。

但我无法帮助感觉到这里存在X-Y问题...