Yii中的onMissingTranslation事件无法正常工作

时间:2012-07-03 10:36:22

标签: php internationalization event-handling yii

我在配置文件的components部分中有这样的配置

'components'=>array(

        'messages' => array(
            'onMissingTranslation' => array('MissingTranslation','handler'),
        ),
);

现在这是我的MissingTranslation班级

class MissingTranslation extends CApplicationComponent{

    public function handler($event){
        $msg= $event->message;

    }

}

现在我使用Yii:t("hello");测试了它,其中“hello”根本没有任何翻译。这会产生错误

  

call_user_func()期望参数1是有效的回调,   非静态方法MissingTranslation :: handler()不应该是   静态呼叫

我删除了onMissingTranslation事件处理程序,它运行正常,所以我怀疑事件处理程序有问题。

这是Yii的错误吗?或者我又做了一件坏事?

更新

这是Yii的回答

https://github.com/yiisoft/yii/issues/902#issuecomment-6732258

我希望这有助于有人遇到同样的问题

1 个答案:

答案 0 :(得分:1)

在扩展class并使用类而不创建InstanceObject时,您需要将其标记为静态,以便其属性和方法可见。