PHPEye开源社区 » Zend Framework 使用讨论 » 对zend_layout的粗糙理解
《Programming PHP》第二版上市
2008-1-30 16:31 bc1998
对zend_layout的粗糙理解

对zend_layout的粗糙理解
声明:本人很垃圾,说的基本都不对,请读者谨慎阅读.
先说一下视图,视图是由php生成和html代码组合的产物.问题就是两种编码的组织形式有差异,php是一个片段组合起来的,而html代码都是由闭合标签组织起来的.这样就留下最经典的问题就是html标签必须由html在最外面闭合head和body.而每个视图所谓差异就在body上,要是按照原有的形式必然造成其head代码的复写.
而zend_layout就能很好的解决这个问题,他是把所有的view都包容在layout之中,默认是content内容,然后每个页面的head差异可以给View Helper来处理.
当然这只是一个简单的应用,像比如经典的3行2列布局的页面,可以公用其共有部分.

[[i] 本帖最后由 bc1998 于 2008-1-31 10:29 编辑 [/i]]

2008-1-30 18:27 punksky
完全没有头绪。。。

2008-1-30 19:56 haohappy
晚上去广州,回来再说。

讨论技术不用这样吧。贴聊天记录干什么?

2008-1-31 15:58 jasonqi
[quote]原帖由 [i]haohappy[/i] 于 2008-1-30 19:56 发表 [url=http://www.phpeye.com/bbs/redirect.php?goto=findpost&pid=1277&ptid=353][img]http://www.phpeye.com/bbs/images/common/back.gif[/img][/url]
晚上去广州,回来再说。

讨论技术不用这样吧。贴聊天记录干什么? [/quote]

这时候还去广州啊?

2008-2-1 09:55 haohappy
看手册很容易理解:Zend_Layout实现了一个Two Step View 设计模式,不像普通模板View那样一步就把内容转换成HTML,而是分成两步来实现。 第一步把领域数据转换为逻辑表示形式,第二步把逻辑表示转换为html。

对于该设计模式,可以参考Martin Fowler的定义:
[url]http://martinfowler.com/eaaCatalog/twoStepView.html[/url]

两步视图的意义在于方便你对视图进行全局性的改变(比如把整个网站的所有页面从三列布局改变为两列布局)。

2008-2-1 09:56 haohappy
[quote]原帖由 [i]jasonqi[/i] 于 2008-1-31 15:58 发表 [url=http://www.phpeye.com/bbs/redirect.php?goto=findpost&pid=1279&ptid=353][img]http://www.phpeye.com/bbs/images/common/back.gif[/img][/url]


这时候还去广州啊? [/quote]

又去签证。。回来了。

2008-2-1 10:57 bc1998
[quote]原帖由 [i]haohappy[/i] 于 2008-2-1 09:55 发表 [url=http://www.phpeye.com/bbs/redirect.php?goto=findpost&pid=1281&ptid=353][img]http://www.phpeye.com/bbs/images/common/back.gif[/img][/url]
看手册很容易理解:Zend_Layout实现了一个Two Step View 设计模式,不像普通模板View那样一步就把内容转换成HTML,而是分成两步来实现。 第一步把领域数据转换为逻辑表示形式,第二步把逻辑表示转换为html。

对于该设计模 ... [/quote]
说得太好了

2008-2-2 20:06 superwen
对,还有一个典型的应用就是ajax视图布局。

一般的试图都包含的head,body部分,但是ajax视图一般只返回一个html片段, 所以我们需要两个布局来处理。

页: [1]
查看完整版本: 对zend_layout的粗糙理解


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.