工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 1449|回复: 1

关于 Pear

[复制链接]
发表于 2007-5-10 09:15 | 显示全部楼层 |阅读模式
Pear库的一个应用

功能:
1,显示表单
2,验证用户输入,
        如果是空显示“Your name is required”
        如果含有字母外的符号,显示“Your name can only contain letters”
        否则进行处理
  1. <?php
  2.   require_once "HTML/QuickForm.php";

  3.   $form = new HTML_QuickForm('register', 'post');
  4.   $form->addElement('text', 'firstName', 'Enter first name');
  5.   $form->addElement('password','password', 'Enter your password');
  6.   $form->addElement('textarea','ta','Description');
  7.   $form->addElement('submit','sb','Submit form');

  8.   $form->addRule('firstName', 'Your name is required', 'required');
  9.   $form->addRule('firstName', 'Your name can only contain letters','lettersonly');

  10.   if ($form->validate()) {
  11.     // processing code goes here.
  12.     echo 'Success!';
  13.   }
  14.   else {
  15.     $form->display();
  16.   }
  17. ?>
复制代码
有一个很诱人的优点,代码量极少,而且清晰易读。
缺点也很明显,
1,每次验证都要到服务端
2,表现层和控制层混合在一起,要表单显示的修改不够方便
下面是PHP处理后的代码:
  1. <form action="/testpear.php" method="post" name="register" id="register">
  2. <div>
  3. <table border="0">

  4.         <tr>
  5.                 <td align="right" valign="top"><span style="color: #ff0000">*</span><b>Enter first name</b></td>
  6.                 <td valign="top" align="left"><span style="color: #ff0000">Your name can only contain letters</span><br />        <input name="firstName" type="text" value="32" /></td>
  7.         </tr>

  8.         <tr>
  9.                 <td align="right" valign="top"><b>Enter your password</b></td>
  10.                 <td valign="top" align="left">        <input name="password" type="password" value="23" /></td>
  11.         </tr>
  12.         <tr>
  13.                 <td align="right" valign="top"><b>Description</b></td>
  14.                 <td valign="top" align="left">        <textarea name="ta">23</textarea></td>

  15.         </tr>
  16.         <tr>
  17.                 <td align="right" valign="top"><b></b></td>
  18.                 <td valign="top" align="left">        <input name="sb" value="Submit form" type="submit" /></td>
  19.         </tr>
  20.         <tr>
  21.                 <td></td>
  22.         <td align="left" valign="top"><span style="font-size:80%; color:#ff0000;">*</span><span style="font-size:80%;"> denotes required field</span></td>

  23.         </tr>
  24. </table>
  25. </div>
  26. </form>
复制代码
没有 id 没有 class (或许是可以添加这两个属性的)要通过 CSS 修改样式几乎不可能
生成的HTML代码有些冗仲(没用CSS的缘故)



当然,HTML_QuickForm只是Pear中一个类,但这样的设计思想(不考虑表现层的易修改性)是不是贯穿整个类库?

附:
PEAR提供的类
http://www.pearchina.com/
登录与认证
性能测试
缓存
设置
控制台
数据库
日期时间
加密
事件
文件格式
文件系统
GTK组件
GTK2组件
HTML
HTTP
图形
国际化
日志
邮件
数学
网络
数字
支付
PEAR
PHP
过程
科学
语义网络
流媒体
数据结构
系统
文本
工具
测试
版本控制
校验
Web 服务
XML
----
QA Tools
PEAR Website

[ 本帖最后由 iptton 于 2007-5-11 08:03 编辑 ]
发表于 2007-5-11 00:09 | 显示全部楼层
good,关注一下。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2025-8-31 00:59

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表