zend_from组件及其装饰器decorator的研究

老夫个人觉得 zf看上去 有官方文档的支持 还有中文化的文档 但其实zf的文档不是很全 中文化的进度总是不同步 你需要的东西都不能在文档中找到 en 这里记录下zend_form组件

zend_form是zf中用于生成表单的一个组件 他有2个很晕的特点 第一就是慢 速度非常慢 有2个text段 1个submit按钮的表单生成出来大约需要半秒的时间 这是很慢的 第二是思路很奇怪 虽然zf本身就是为了mvc而生的 form这部分应该算做model 但是 zend_form有自己的view层 也就是装饰器 decorator

这里就说下装饰器 zend_form是最外层 先不说这个 我们先说里面被包裹的zend_form_element 也就是比如按钮 text字段 password字段 checkbox这类东西的装饰器 默认顺序是四个 viewhelper,errors,htmltag,label 这四个具体的意思是 viewhelper是一个助手 他会识别element种类 生成基础代码 比如zend_form_element_text是一个字段输入框体 viewhelper会自动帮你找到formtext这个额外的助手 产生代码如下

代码如下
  1. <input name="foo" id="foo" type="text" value="" />


接下来errors装饰器接管 如果有表单提交的错误反馈 会渲染出来 产生如下

代码如下
  1. <input name="foo" id="foo" type="text" value="" />
  2. <div class="error">
  3. <ul>
  4.     <li>...</li>
  5. </ul>
  6. </div>

接着htmltag装饰器接手 默认就是加上dd标签

代码如下
  1. <dd><input name="foo" id="foo" type="text" value="" />
  2. <div class="error">
  3. <ul>
  4.     <li>...</li>
  5. </ul>
  6. </div>
  7. </dd>

最后 如果label被设置 label装饰器 启动增加一个默认dt标签

代码如下
  1. <dt><label for="foo" class="optional">Foo</label>
  2. <dt>
  3. <dd><input name="foo" id="foo" type="text" value="" />
  4. <div class="error">
  5. <ul>
  6.     <li>...</li>
  7. </ul>
  8. </div>
  9. </dd>

于是 一个element就这样渲染出来了  eee

zend_form渲染器就是 先渲染每一个element 如上步骤 然后渲染htmltag 然后渲染form 一个表单就这样出来了 .......zend_form可以和zend_dojo以及zendx_jquery的装饰器有机的统一 不过jquery部分目前稍微弱点 dojo的部分目前整合的最强大 en

发表评论

最新日记

  • 身体不适 回归健身房

    手断了也快3个月了,国庆长假期间去了一次健身房,惊喜的发现终于能卧推了,当然重量下去很多,只能推两片菜园小饼了。这意味着我能恢复训练了,用到手腕的动作都可以恢复了。不过发现一个很悲剧的情况,最近腰不太好,可能是每天折叠车拿上拿下,我的腰好像前所未有的不舒服,涂了黄道益,没见好转,真让人沮丧,需要慢慢的恢复训练,并且补充营养品了。...

  • 伤筋动骨确实需要100天手终于恢复过来了

    骨折到现在一直很失落,因为骨折让我感觉到自己不那么健康,因为骨折让自己失去篮球和其他运动的能力,失去去健身房锻炼的权利。今天,距离716骨折已经2个多月了,做了下俯卧撑,不痛了,太好了我很激动,我知道手腕快好了,恩。我要更注意自己的保护了。 西藏北路的房子有优点也有缺点,优点是感觉房子蛮大的,没有厅所以房间很大,个人空间大,离开8号线站头步行3分钟,交通便捷,去哪里都很方便,自行车到四川路也就8分钟,离开公司那就更近了,舒服。缺点是,虽然马路边风景好了,但是很吵闹,尤其低音从骨骼传递而已,让人感觉很难过,睡觉不好,不过现在已经适应了,无法停车汽车或者电瓶车都没有位置停,停楼下肯定要被偷,不过我发现八号线门口好像有停车场,可以免费停业不错。ADSL还没有转移过来,有线电视倒是好了。最后希望拆迁顺利点。...

  • 车车终于买好了,明锐1.8t

    又是一段时间没写blog,可能是装上MT之后更新频率最慢的一段时间吧。我也不知道为什么,但是总是不能有精神的写。可能自己手腕还没完全恢复,很沮丧吧。 最近的大事就是车子买好了,上海大众斯柯达新明锐2010款1.8t,灰色的,7速dsg变速箱,逸俊版,j加装了ESP,安全很重要。真是相当相当的喜欢,完美的地盘完美的动力配置,外加新款的造型,让人很满意,安全方面假装ESP。比较可惜就是方向盘是全塑料的,没有选择价值3500的选装包5,包含更多的两个喇叭,大点阵的仪表显示屏,一个触摸屏CD机,真皮带蓝牙方向盘,有点点后悔。但是有了更好的选择,RS的真皮方向盘,带拨片式换挡片,配合DSG时王道般的选择。CD,DVD,GPS这种纯娱乐电子的东西是完全不需要,原厂的贵的不行,哪怕国产的都是很贵,一个本本才多少钱,花个几千买电子产品是很不划算的行为,不过也有选择,比如西门子的VDO和明锐的CAN盒完美匹配。还需要一套金属的踏脚板,便宜的很,一套固德的8件套金属件,包含迎宾踏板等。性能方面改装要很多钱,但是可以设想下,仿BBS的轮毂一套,17寸的米其林轮胎一套,b12避震一套完全用不着更好的产品,淘一套拆车的尚酷或者随便什么PQ35系大尺寸刹车,完美车车立即呈现。恩。开心点吧...

  • 一个月拉 身体在快速的康复中

    一下就一个多月没写blog,没有记录生活。不为别的,只是老夫的手骨折了,三角骨撕脱性骨折。这一个月经历了很多事情,尤其一个月前七月十七日。老夫领了结婚证,成为已婚人士。当然是带着手腕的剧痛领的,领完就去瑞金医院绑了石膏。领证前一天想娱乐娱乐,冒着大雨去打篮球,只怪闸北IC的地板太光滑,动作一做出来就摔了,很惨,三角骨就这样骨折了。还好是小伤,大前天拆掉了石膏,恢复中。每天一副云南白药,带上一个护腕,这两天恢复下来,感觉明显好转。从刚拆的有轻微的牵扯静脉的感觉,到现在基本很OK,云南白药对我帮助很大。希望身体快点恢复。这1个多月没有去健身房,有点脂肪堆积了,要开始强化的有氧了。...

  • 几乎一个月没有写blog了 已经完全夏天了 不过没感觉到热....

    上海已经完全夏天了,不过最近雨季,没有前些日子那么闷热。每天家,公司,健身房三点一些,好在都有空调,所以没有感觉到不舒服。但是肚子好像不争气,肠胃不是很好,虽然吃东西已经很注意了。 夏天到来最大的一个好处就是电瓶车的行驶里程大了很多,明显比冬天的时候行程更长,持久高电压带来更高的速度,铅酸电池真是难伺候。不过话说GIANT上的三洋电池用了三年还是如此坚挺,感觉很欣慰。 本周结束,为期一个月的停止供应的补剂,也要准备恢复,迫不及待的想尝试肌肉科技的那绝对美味的蛋白粉了。 然后,7月17要经历一个大事件了。...

关闭