【问题标题】:get locale resource in bootstrap在引导程序中获取语言环境资源
【发布时间】:2011-11-02 11:00:21
【问题描述】:

我看到很多人做出了不起的事情的例子:

$locale = $this->getResource('locale');

在他们的引导程序中。但是虽然我有

resources.locale.default = "nl_NL"
resources.locale.force = true

在我的 application.ini 和

protected function _initLocale()
{
    $locale = $this->getResource('locale');
    // more code
}

var_dump($locale) 仍然返回 NULL,并且在我的应用程序的其他地方应用的语言环境是 zend 默认的“en(_US)”。

我应该如何访问(或初始化)在我的 application.ini 中设置的应用程序范围的语言环境?

【问题讨论】:

    标签: zend-framework resources locale bootstrapping


    【解决方案1】:

    这里的问题是你的 Bootstrap 方法覆盖了内置的应用程序资源,因为它具有相同的名称(_init 之后的部分)。

    试试这个

    protected function _initLocaleMods()
    {
        // always bootstrap required resources
        $this->bootstrap('locale');
    
        $locale = $this->getResource('locale');
    
        // more code
    }
    

    【讨论】:

    • 谢谢菲尔,这行得通!虽然 bootstrap('locale') 在这里确实是必要的:为什么我总是要引导资源?我不会为视图、数据库、邮件等执行此操作,而且我的 application.ini 设置仍在其他地方获取。
    • @zensys 无法保证应用程序资源的顺序和引导方法,因此您应始终确保您的代码所依赖的资源可供使用。如果您的方法或自定义资源插件依赖于它们,您只会引导视图、数据库等。阅读Dependency Tracking
    猜你喜欢
    • 1970-01-01
    • 2010-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多