Chinaunix首页 | 论坛 | 博客
  • 博客访问: 19002332
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类: C/C++

2008-05-27 21:19:46

Zend Framework的参考手册中是这样描述View Helper的:

“在你的视图部分的脚本中,经常要实现一些复杂的功能,例如,格式化一个日期、生成表单元素或显示动作链接等等。现在你可以使用helper类来为你实现这些操作。”

当前版本的ZF(0.1.3版)包含了几个表单helper,无疑将来当ZF成熟时会提供更多helper。我首先做的事情就是按照添加子类控制器建议的那样,建立类似Zend_View_Helper的目录结构:

library/
  Zend/
   View/
    Helper/
MyProject/
  View/
   Helper/

我的项目所需的特殊的helper文件放在library/MyProject/View/Helper/,单独存放是为了便于更新Zend核心文件。

下一步是告诉Zend_View在查找默认Zend helper目录的同时也查找定制的helper目录。这只需要编辑public_html/index.php文件,为Zend_View对象添加新的helper路径:

$view = new Zend_View;
$view->addHelperPath('MyProject/View/Helper');

下一步在参考手册中已经记载的很详细了,但是为了完整性的缘故,我将会继续。建立一个新的helper文件:

class Zend_View_Helper_DoStuff {

 public function doStuff()
 {
  return 'Hello to you all';
 }
}

注意:

让我觉得不对劲的地方是新的helper类必须被命名为“Zend_View_Helper_YourNameHere”,而不能是“MyProject_View_Helper_YourNameHere”,考虑到先前我提到的目录结构,它看起来有点古怪。从逻辑上来说,它是一个Zend_View的helper类,其将会同其他由你自己“命名的”子类文件被保留在MyProject目录下,这看起来似乎没有遵循惯例。

准备使用


在将新的helper文件保存为MyProject/View/Helper/DoStuff.php之后,将可以在你自己的View脚本中像这样来使用:

doStuff(); ?>

当编写helper类的时候,关键的地方在于命名(方法)的约定,就像在我的doStuff这个例子中说明的:

  1. 类名必须是Zend_View_Helper_DoStuff
  2. 类必须包含一个public方法doStuff()
  3. 文件必须以DoStuff.php为名字保存

像我在《getting to know Zend_View》一文中描述的那样,以上几点在继续开发后可能会有变化。

进一步阅读


查看Zend Framework参考手册中的Helpers部分

阅读(573) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~