php教程:php设计模式介绍之装饰器模式(2)_PHP技巧_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

php教程:php设计模式介绍之装饰器模式(2)

作者:黑客防线网安PHP教程基地 来源:黑客防线网安PHP教程基地 浏览次数:0

本篇关键词:模式装饰教程介绍
黑客防线网安网讯:  组件库包含哪些特性?    容易创建表单元素    将表单元素以html方式输出    在每个元素上实现简单的验证    本例中,我们创建一个包含姓,名,邮件地址,输入项的表单...
  组件库包含哪些特性?
  
  容易创建表单元素
  
  将表单元素以html方式输出
  
  在每个元素上实现简单的验证
  
  本例中我们创建一个包含姓名,邮件地址,输入项的表单所有的区域都是必须的,而且E-mail必须看起来是有效的E—mail地址用HTML语言表示,表单的代码象下面所示:
  
  <formaction=”formpage.php”method=”post”>
  
  <b>FirstName:</b><inputtype=”text”name=”fname”value=””><br>
  
  <b>LastName:</b><inputtype=”text”name=”lname”value=””><br>
  
  <b>Email:</b><inputtype=”text”name=”email”value=””><br>
  
  <inputtype=”submit”value=”Submit”>
  
  </form>
  
  增加一些css样式后,表单渲染出来如下图所示:
  
  为建立统一的API,我们创建一个基本的组件类(如果这是php5的例子,这或许会使用接口)。既然所有的组件(表单元素)都必须渲染一些输出,组建类可以仅仅只有一个paint()方法。
  
  classWidget{
  
  functionpaint(){
  
  return$this->_asHtml();
  
  }
  
  }
  
  让我们以一个基本的text输入组件开始。它(组件)必须要包含输入区域的名字(name)而且输入内容可以以HTML的方式渲染。
  
  classTextInputextendsWidget{
  
  var$name;
  
  var$value;
  
  functionTextInput($name,$value=’’){
  
  $this->name=$name;
  
  $this->value=$value;
  
  }
  
  function_asHtml(){
  
  return‘<inputtype=”text”name=”’.$this->name.’”value=”’
  
  .$this->value.’”>’;
  
  }
  
  }
  
  一个基本的测试可以验证HTML代码是否正确——作为参数传入给构造函数的名字,值(内容)是否传递到渲染后的输出中:
  
  classWidgetTestCaseextendsUnitTestCase{
  
  functiontestTextInput(){
  
  $text=&newTextInput(‘foo’,‘bar’);
  
  $output=$text->paint();
  
  $this->assertWantedPattern(
  
  ‘~^<inputtype=”text”[^>]*>$~i’,$output);
  
  $this->assertWantedPattern(‘~name=”foo”~i’,$output);
  
  $this->assertWantedPattern(‘~value=”bar”~i’,$output);
  
  }
  
  }
  
  TextInput组件工作正常,但是它的用户接口非常糟糕,它缺少友好的描述,如“FirstName”或者“EmailAddress.”。因此,下一个增加到组件类的合理的特性就是一个描述。我们进入有能够统一增加(一些特性)能力的装饰器模式。
  
  
    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-17397-1.html
网站维护教程更新时间:2012-09-21 05:18:14  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer