从学ZendFarmework以来,就在用Zend_Form这个组件。当然对于这个组件的好坏。个人有个人的看法。。就说从项目开发的角度来看,如何让美工和程序员更好的去更改程序员所写的Form。这是个很大的问题,因为不可能让美工去改程序员的东西。所以,在开发的过程中真的,有点想用 Zend_Form,又怕用。。因为很多不方便的。特别是在要做页面修改的时候,真有点难。关于这问题,先且不说。
现在我来说一下我自己在用Zend_Form过程中遇到的问题。其中有二点:
第一:前期在使用Zend_Form时,排版和布局是一个比较费时间的事情。
第二:当页面载入我们写好的Zend_Form时,页面解析速度很慢。
第一点解决方式与感想:我在运用的过程中,刚开始时候是真的非常的吃力。。就算不需要美工去排版,我自己来写一个Zend_Form类都是相当的想死。刚开比如说一个最简单的问题:我想把一个密码文本框放在用户名文本框的后面?如何排呢?我要在Form类里面怎样写呢?当时真的很难受。我不可能总用 Zend_Form自带的标签吧?没有任何办法,通过自己看它的源码与手册才知道,原来很简单。更是感觉到ZendFramewok的强大,灵活之处。上面的小问题我们可以自定义的Zend_Form_Decorator装饰器或是自己定义Form的标签。
因此这个问题的解决方式,只有通过自己的运用与实践,就可以很好的解决掉。
第二点:如果你写好你的Form后,执行一下你要掉用它的页面,你会发现页面很慢,这基实就是Zend_Form的解析速度影响到你的页面执行效率。当你的Form表单越来越多的时候,你会发现更是慢到你不可想像的地步。关于这个问题在PHPChina也有讨论具体地址: 其实这里的讨论也正好也给我提醒了一点。。如果要用Zend_Form就必须提高他的执行速度。我也运用缓存试试看如何。我先测试了一下我在运用 Zend_form页面的执行页面所需要用的时间,晕了(0.2秒多)。当我运用缓存Zend_Form文件时,再查看页面的执行时间(0.04秒)。果然提高效率到5倍以上。真是让人高兴啊。哈哈。。
当然我这里并不会遇到上面那贴子所说的修改,或验证问题。更不需要用JS替换什么。我不知道贴上楼主是怎样遇到修改或验证问题。
现在我把我缓存Zend_Form这块的程序步骤写下来:
1。配置好你的文件缓存目录。
这里我用Zend_Cache里的文件缓存,大致程序如下:
<?php
$frontend = array(
'lifetime' => 120,//缓存时间
'automatic_serialization' => true);
$this->cache = Zend_Cache::factory('Core', 'File',
$frontend,array('cache_dir' =>CACHE_DIR.'/forms'));
|
2。把Zend_Form写入缓存文件。
<?php
//检测是否存在缓存,如果不存在就生成
if(!$form = $this->cache->load('rentoutform')) {
$form = new comadmin_forms_Rentout();//取到Zend_Form表单类
$this->cache->save($form, 'rentoutform'); //生成Zend_Form缓存
}
$form->submit->setValue('确定修改出租信息');
|
3。根据你的缓存时间(缓存是否过期)取到Zend_Form缓存.程序在第二点有说明。
写到这里,基本上加速Zend_Form的问题得到一个解决。当然这是加速的效果不算太显著。
阅读(1611) | 评论(0) | 转发(0) |