使用PHP创建XForms 第2部分

时间:2010-01-08 08:24:23   来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:v/php/2009-04-21/b7e4892bdc5ca2f79000d11e0dde24b2.gif" width=10>此时,您所拥有的 PHP 库基础上可以正常运作,但是还未进行过测试。现在,我们来改善输出的外观、验证函数的输入(XForms 预处理器错误并非总是有用),并查看库的操作演示。因此,现在开始执行这些任务。...
  正文:

PHP XForms 库:下一个任务是什么?

此时,您所拥有的 PHP 库基础上可以正常运作,但是还未进行过测试。现在,我们来改善输出的外观、验证函数的输入(XForms 预处理器错误并非总是有用),并查看库的操作演示。

因此,现在开始执行这些任务。


对库进行增强

库的核心部分现已完成,因此可继续对 PHP XForms 库进行增强,比如构建一些简单的抛出异常和处理异常的功能,这些功能会很有用,因为并非所有输入的设置都可以接受,或者说在结果的 XHTML 文档中会不可避免地出现错误。另外,您需要一些便利的函数将 XHTML 输出到 Web 浏览器,以及正确地处理数据缩进。我们从错误检查开始介绍。

错误检查

在本节中,通过向库中添加错误检查,可以减少 XForms 处理器中需要调试的错误,从而减少编程时间。处理完这一切后对编程有很大帮助。您将以两种方式执行错误检查:

  • 首先,对于允许使用子元素(如您在第 1 部分添加的最后四个 action、model、trigger 和 repeat)的 XHTML 标记,您要确保只有允许的 XHTML 标记才作为子元素添加。
  • 最后,您将对单个函数的输入执行错误检查,确保不出现某些情况,如果出现这些情况,则抛出一个异常,捕获之并显示在浏览器上。

首先,转到 xforms_lib.php 类文件中的变量列表,添加另外两个变量,如清单 1 所示。
清单 1. 新变量

...    var $namespaceEvents;    var $allowed;     var $tag;        function xforms_lib($ns, $nsxforms, $nsevents){...         $this->tag = '';        $this->allowed =            array('action' => array('dispatch', 'insert',                                    'setvalue', 'load'),                  'model' => array('instance', 'submission',                                   'bind', 'action'),                  'trigger' => array('label', 'action'),                  'root' => array('trigger', 'submit', 'select1',                                  'repeat', 'input', 'output',                                  'label', 'model'));...
新变量是$allowed$tag变量。在构造函数中,您将初始化这两个变量。在本节中,稍后您将了解关于$tag变量的更多信息,但是可以这样说,它保存了当前打开的标记的名称。清单 1中的每个值都是顶级的 XForms XHTML 标记。Root 在没有进行任何指定时使用(repeat 和 root 一样,所以当打开 repeat 标记时,root 用于此类错误检查)。例如,查看一下 ‘action’:只有 dispatch、insert、setvalue 和 load 这四个 XHTML 标记可以作为子元素。每个标记各不相同,因此可以允许使用子元素的不同子集。

接下来,您将修改dispatchTag方法以利用这种新功能,如清单 2 所示。
清单 2. 修改dispatchTag函数

function dispatchTag($name, $target){        $this->check('dispatch');        $xml = '<xforms:dispatch';        if($name != '')            $xml .= ' name="'.$name.'"';        if($target != '')            $xml .= ' target="'.$target.'"';        $xml .= " />";    }
请注意此处的新内容。您将创建的标记名称传给新函数check(这个函数稍后将做定义)。其余部分应相同。

现在,您将定义check函数,由此函数执行实际的检查,如清单 3 所示。

清单 3.check函数

来源:http://www.002pc.com/master/College/Programming/PHP/11605.html

 1/8    1 2 3 4 5 6 下一页 尾页
来顶一下
近回首页
返回首页
收藏到:

关于《使用PHP创建XForms 第2部分》文章的评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面

随机文章

    SQL Error: select * from ***_ecms_article where classid='86' and checked=1 order by rand() limit 10

顶出来的热门

    SQL Error: select * from ***_ecms_article where classid='86' and checked=1 order by diggtop desc,id desc limit 10
站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td