php – 如何扩展Zend视图以实现具体功能?
发布时间:2020-12-13 22:35:50 所属栏目:PHP教程 来源:网络整理
导读:我想让设计师尽可能简单地在视图中本地化字符串,这意味着我想这样做: ...p?php echo $this-_("Hello,world!"); ?/p... 这里的下划线符号是必要的,以允许Poedit自动提取所有字符串进行本地化.实施是微不足道的: public function _($string){ return Zend_Re
我想让设计师尽可能简单地在视图中本地化字符串,这意味着我想这样做:
... <p><?php echo $this->_("Hello,world!"); ?></p> ... 这里的下划线符号是必要的,以允许Poedit自动提取所有字符串进行本地化.实施是微不足道的: public function _($string) { return Zend_Registry::get('Zend_Translate')->_($string); } 目前,我已将它直接放在Zend_View_Abstract中,这很糟糕(我不想通过修改任何Zend库来实现这一点).理想情况下,我会扩展Zend_View_Abstract以允许我实现我们需要的其他具体功能,但我不知道如何设置它.另一种方法可能是实现View Helper,但我知道如何执行此操作的唯一方法是使视图中的代码更加冗长.任何指针(不,不是那种)将非常感激.谢谢!
显然忽略了我自己的道路……
>扩展Zend_View 在/ library / MegaHAL / Zend / create View.php中: class MegaHAL_Zend_View extends Zend_View { public function _($string) { return Zend_Registry::get('translate')->_($string); } } 在你的引导程序中: require_once APPLICATION_PATH.'../library/MegaHAL/Zend/View.php'; $view = new MegaHAL_Zend_View(); $viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer(); $viewRenderer->setView($view); Zend_Controller_Action_HelperBroker::addHelper($viewRenderer); 在你看来: <p><?php echo $this->_("Hello");?></p> 我相信会做你想做的事,是吗? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |