Yii 中的 onMissing Translation 事件无法正常工作


onMissingTranslation event in Yii doesn't work properly

好吧,我在配置文件的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 是有效的回调, 非静态方法 Missing Translation::handler() 不应该是 静态调用

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

这已经是Yii的错误了吗?还是我又做了什么坏事?

更新

这是来自Yii的答案

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

我希望这对遇到同样问题的人有所帮助

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