Zend Framework 定义了一个通用的 placeholder() 视图帮助器你可以用来定制你所需要的占位符。它也提供大量专门的经常所需功能的占位符应用,例如指定 DocType 声明,文档的标题,以及更多。
所有的占位符在总体上运行是一致的。他们是容器,这样以便你能把它们当作收集物来执行。使用它们,你可以做到:
- 附加或者预加物体到收集物上
- 用一个单独的值来取代整个收集物。
- 指定一个字符串,当呈现收集物的时候用它来前置输出
- 指定一个字符串,当呈现收集物的时候用它来后置输出
- 指定一个字符串,当呈现收集物的时候用它来分割事物
- 把内容采集到收集物中
- 呈现合并的内容
典型的,你不用参数就可以调用这个帮助器,它将返回一个你可以操作的容器。然后你可以输出这个容器来呈现它,或者调用它的方法来配置和填充它。如果容器是空的,呈现它会简单的返回一个空的字符串;否则,内容将会根据你配置的规则被合并。
举例说明,让我们创建一个由一些块内容组成的横幅。你极可能提前知道各个块的结构,让我们假设此例中它看起来是这样的:
基于控制器和行为,内容会有所不同,但是结构是一样的。这我们首先为我们的 bootstrap 以一种资源方法来建立横幅。
上面定义了一个占位符,横幅,没有事物。但是它按照我们的要求创建了这个占位符基本的标记结构。
现在,这我们假设全部行为的用户控制器,我们想在顶部出现一个包括一些信息的块。我们可以通过两种方法来完成:(a)我们可以在控制器的 preDispatch() 方法上增加内容,或者(b)我们可以从 preDispatch() 方法内部中呈现一个视图脚本。我们使用(b)计划,因为它遵循一个更多合适的注意力分离(把和视图相关的逻辑和功能留在一个视图脚本内)。
我们会这个视图脚本命名为 user/_sidebar.phtml,用以下内容填满它:
以上的例子使用了占位符的内容采集功能。默认的,内容被当作一个新事物附加到容器内,让我们合并内容。这个例子为了创建标记,使用了视图帮助器和静态 HTML,内容然后被采集然后附加进占位符本身。
为了唤醒以上视图脚本,我们要把以下内容写进我们的 preDispatch() 方法中:
注意我们没有采集被呈现的值,这没有必要,因为那个视图整个正在被采集进一个占位符内。
现在,让我们假设我们的在同一个控件器中的 视图 行为需要呈现一些信息。在 user/view.phtml 视图脚本中,我们可能有以下的代码片断:
这个例子使用了 append() 方法,把一些简单的标记传递给它来合并。
最后,让我们修改我们的模板视图,并让它呈现占位符:
对于没有被横幅占位符填充的控制器和行为而言,不会输出内容,而对于被填充的而言,然而,输出占位符将会按照我们在 bootstrap 中制定的规则,我们在整个应用程序内合并的内容来呈现内容。对于 /user/view 行为这个个案,个假设一个用户名为 matthew,我们将按照以下来获得横幅的内容(为了易于阅读,已经做了格式化):
通过结合占位符和模板脚本,你可以做大量的事情;尝试它们,阅读相关章节来获取更多信息。
分享到:
相关推荐
不支持PDO 、MYSQLI的空间也可以用ZEND框架了 解包后到 Zend 的框架目录 library\Zend\Db 在PHP程序里 $db = Zend_Db::factory('Mysql', $params); 即把原来的 PDO_MYSQL 等改成 Mysql
本文实例讲述了Zend Framework教程之视图组件Zend_View用法。分享给大家供大家参考,具体如下: Zend_View是Zend Framework的视图组件,MVC中的视图层。 Zend_View也是应用的直接对用户展示的页面。这里介绍一下Zend...
本文实例讲述了Zend Framework教程之Zend_Db_Table_Row用法。分享给大家供大家参考,具体如下: 1. 简介 Zend_Db_Table_Row是Zend Framework的行数据网关.通常来说,你不可以自己实例化Zend_Db_Table_Row, 而是通过...
•Getting Started Zend_View Placeholders •Understanding and Using Zend Form Decorators •Getting Started with Zend_Session, Zend_Auth, and Zend_Acl •Getting Started with Zend_Search_Lucene •...
Zend_XmlRpc使用实例,zend 轻松实现webservice功能,对外接口
Zend_Studio和Zend_DebuggerZend_Debugger的安装
Zend_framework_in_REST.pdf
本文实例讲述了Zend Framework框架Zend_Db_Table_Rowset用法。分享给大家供大家参考,具体如下: 1. 简介 Zend_Db_Table_Rowset是 Zend_Db_Table_Row对象集合的迭代器.通常来说,你不可以自己实例化Zend_Db_Table_...
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_db数据库操作课件
typedef struct _zend_string zend_string; zend_string是_zend_string的别名,_zend_string内容如下: struct _zend_string { zend_refcounted_h gc; zend_ulong h; /* hash value */ size_t len; char val[1];...
Zend_API:深入_PHP_内核如果想深入PHP的内核,多多读读这个吧
Zend_Framework_zh(2011.07.18).chm
一个简单的zend_acl和Zend_auth的应用。对于初学zf框架的人有一定的帮助。
Zend_Framework 手册 中文版 中文是部分翻译 版本是截止目前最新的,当然在不久的将来肯定会被更新掉,下载的朋友注意了。
本文实例讲述了Zend Framework入门教程之Zend_View组件用法。分享给大家供大家参考,具体如下: Zend_View组件可以实现MVC模式中视图部分的代码与Model和Controller部分的分离。 使用步骤:首先在Controller中建立一...
zend_studio详细使用教程.doc
Zend_Framework_EN_20090313,Zend_Framework_EN_20090313
zend_studio使用
zend_studio详细使用教程