`
ythzjk
  • 浏览: 75453 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

zend framework中的helper们

阅读更多
2008-11-06 00:28

写程序的时候,或多或少都会需要一些helper类,来减少一些重复的工作,但对helper的确立并不明确,大多数程序员喜欢称他们为common,tools,utility之类,而在mvc的领域,helper的概念则十分明确,就是来帮助开发的。
zend fx 的mvc的helper:

1.Zend_Controller_Action_Helper
在爽快地写一个个action的时候,难免需要一些重定向啊,构造url之类的需要,如果你想在当前controller里写几个私有的方法供几个action调用,是可以,但其他controller有类似需求,你难道又写一个?那好,写在基类里?多个controller都能用了,但是,这些controller应该包含这个职责吗?写在一个php文件里,include下?ok,你都做到这步了,那要框架干嘛。还是把这些琐碎的小东西交给helper来完成吧。
例如官方例子里:在某个controller里的某个action里
代码段1
$flashMessenger = $this->_helper->getHelper('FlashMessenger');
$flashMessenger->addMessage('We did something in the last request');

代码段2
$flashMessenger = $this->_helper->FlashMessenger;
$flashMessenger->addMessage('We did something in the last request');

代码段3
$this->_helper->FlashMessenger('We did something in the last request');

三段代码一样的效果,无非是___get和__call的使用,zf和ror一样,喜欢用flash来做sample

看看核心代码
 public function __call($method, $args)
    {
        $helper = $this->getHelper($method);
        if (method_exists($helper, 'direct')) {
            return call_user_func_array(array($helper, 'direct'), $args);
        }

        throw new Zend_Controller_Action_Exception('Helper "' . $method . '" does not support overloading via direct()');
    }

    public function __get($name)
    {
        return $this->getHelper($name);
    }

内置的action helper有不少,在 zend/controller/action/helper里可以找到,最有用的应该是url,viewrender和redirector
看看这些文件,仿造一个你需要的helper来,就很容易了

2.Zend_View_Helper
写网页的,前台输出的东西往往是最复杂的,指望所有东西都从controller里set过来,不是很方便,代码也很冗余,使用view helper,还是能简化不少工作,使代码更清晰
打开quickstart框架自带的/application/layouts/scripts/layout.phtml,就能看到相当多对action helper的使用:$this->doctype(),$this->headLink(),$this->layout()等等。
这些都是访问内置的zend/view/helper里的文件,从语法上看,在view里使用view helper比在action里使用action helper还要更直接,更简单些。从自己编写一个helper的代价而言,view helper也更为简单,遵循方法名首字母小写就可以实现直接调用
以Url.php的代码为例:
class Zend_View_Helper_Url extends Zend_View_Helper_Abstract
{
   
    public function url(array $urlOptions = array(), $name = null, $reset = false, $encode = true)
    {
        $router = Zend_Controller_Front::getInstance()->getRouter();
        return $router->assemble($urlOptions, $name, $reset, $encode);
    }
}
写好view helper文件,扔到这个目录下就能用了,为了保持独立性,你也可以设置helper的目录
分享到:
评论

相关推荐

    ZendFramework中文文档

    1. Introduction to Zend Framework 1.1. 概述 1.2. 安装 2. Zend_Acl 2.1. 简介 2.1.1. 关于资源(Resource) 2.1.2. 关于角色(Role) 2.1.3. 创建访问控制列表(ACL) 2.1.4. 注册角色(Role) 2.1.5. 定义访问...

    zend framework中文帮助

    Zend Framework 提供了 View Helper 和 View Script 机制,帮助开发者更方便地创建和管理视图。 **4. 模型(Model)** 模型处理应用程序的业务逻辑和数据操作。 Zend Framework 提供了多种数据库访问组件,如 Zend...

    ZendFramework-1.11.11minimal

    安装 Zend Framework 1.11.11 minimal 版本通常包括解压文件到服务器的适当目录,然后在PHP项目中通过包含相应的路径来使用其组件。开发者还可以通过Composer进行更精细的依赖管理。 **使用和学习资源** 为了更好...

    诗意的边缘:PHP顶级框架Zend Framework开发实战-代码

    在 Zend Framework 中,MVC 是基础。Model 负责业务逻辑和数据处理,View 负责显示输出,Controller 处理用户请求并协调 Model 和 View。通过 Zend_Controller_Front,你可以设置路由规则,分发请求到相应的控制器,...

    Zend Framework 框架开发入门教程

    **Zend Framework** 提供了一系列辅助函数,用于简化开发过程中的常见任务,如格式化日期、生成 URL 等。例如: - **ZF\Navigation** :用于构建导航菜单。 - **ZF\Form** :用于表单的创建和验证。 - **ZF\View\...

    ZendFramework-1.7.2帮助文档

    **Zend Framework 1.7.2 帮助文档** Zend Framework 是一个开源、全面的 PHP 框架,用于构建可扩展且高效的 Web 应用程序。版本 1.7.2 是该框架的一个重要里程碑,包含了丰富的特性和改进。这个帮助文档以 HTML ...

    Zend Framework自定义Helper类相关注意事项总结

    在Zend Framework中,自定义Helper类是为了扩展视图层的功能,使其能够处理特定的输出或者逻辑。以下是一些关于创建和使用自定义Helper类的关键注意事项: 1. **类命名规范**: - Helper类名必须遵循`Zend_View_...

    2013年最近Zend Framework2图书Web Development with Zend Framework 2

    10. 事件管理: Zend Framework 2中引入了事件管理器(EventManager)概念,它允许开发者在应用程序中监听和触发事件。本书详细说明了如何注册监听器(Listener)、同时注册多个监听器、移除已注册的监听器以及触发...

    ZendFramework-1.5.3.tar.gz

    标题中的"ZendFramework-1.5.3.tar.gz"指的是 Zend Framework 的一个特定版本,1.5.3,该版本被压缩为一个 .tar.gz 文件。这种格式常见于Linux和Unix系统中,用于打包和压缩文件。.tar 本身是用来归档多个文件或目录...

    Zend Framework ppt入门教程

    在`Zend Framework.ppt`这个入门教程中,你将学习如何搭建开发环境,安装和配置 Zend Framework。通常,这包括设置PHP版本、安装Composer(PHP的依赖管理工具)以及通过Composer下载和安装 Zend Framework 框架。...

    zend framework 英文手册下载

    在本文中,我们将深入探讨 Zend Framework 的核心概念和功能,以及如何利用其英文手册进行学习。 **1. MVC架构** MVC 是一种设计模式,用于分离应用程序的不同部分:模型(Model)负责数据处理和业务逻辑,视图...

    Zend Framework配置 中文WORD版

    resources.view.helperPath.Zend_View_Helper = "Zend/View/Helper/" resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts" ``` **九、总结** Zend Framework的配置是其强大功能的关键部分,通过...

    zendframework blog

    本项目“zendframework blog”就是基于该框架构建的一个博客系统,旨在展示如何利用Zend Framework实现一个完整的博客平台。 ### 1. MVC架构 在Zend Framework中,MVC模式是核心设计思想。模型(Model)负责处理...

    Zend Framework教程之视图组件Zend_View用法详解

    在Zend Framework中,Zend_View是模型-视图-控制器(MVC)架构中视图层的重要组成部分,负责处理和呈现应用程序的输出。本教程将深入探讨Zend_View的使用方法、工作原理及其与其他组件的交互。 首先,让我们了解...

    zend framework编码规范

    在软件开发领域,特别是基于 ZEND Framework 的项目中,统一且规范化的编码标准至关重要。良好的编码标准不仅能提升代码质量,还能增强项目的可维护性和可读性,尤其是在多开发者协同工作的场景下。本文档旨在为 ...

    Web+Development+with+Zend+Framework+2+(2013)

    此外,作者还讲解了Zend Framework 2的视图(Views)、模型(Model)和路由(Routing)的概念及其操作模式,这包括了布局(Layouts)的使用,以及视图助手(View Helper)的编写。 书中还涉及了企业服务(Business ...

    Zend_Framework_zh.rar

    2. **Model-View-Controller (MVC)**: MVC 设计模式在 Zend Framework 中被广泛应用,将业务逻辑(Model)、用户界面(View)和应用程序控制流(Controller)分离,增强了代码的可读性和可维护性。 3. **数据库抽象...

    Zend Framework动作助手Redirector用法实例详解

    Zend Framework中的动作助手Redirector是用于实现页面重定向功能的组件,它通过一套丰富的API提供灵活的重定向策略。在这篇文章中,我们将详细探讨Redirector的用法,并通过实例深入分析其功能和注意事项。 首先,...

    Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解

    在 Zend Framework 中,动作助手(Action Helper)是一种设计模式,它允许开发者将常用的功能封装起来,以便在需要时方便地在动作控制器(Action Controller)中使用。这样可以减少代码重复,提高代码复用性,同时...

Global site tag (gtag.js) - Google Analytics