
先来看一段php面向对象编程的代码:
[php]
<?php
class DBPersonProvider
{
public function getPerson($givenName, $familyName)
{
/*省略了 链接数据库,获取person信息 */
$person = new Person();
$person->setPrefix("Mr.");
$person->setGivenName("John");
return $person;
}
}
/*获取persoin信息 */
$provider = new DBPersonProvider();
$person = $provider->getPerson("John", "Doe");
echo($person->getPrefix());
echo($person->getGivenName());
?>
[/php]
这一段代码可以实现从数据库中取出数据,赋值给Person对象然后返回这一功能。在环境发生更改之前,代码都可以正常运行。但是,从数据库装入 Person 可能适用于第一个版本的应用程序,但是对于第二个版本,可能需要添加从 Web 服务装入人员的功能。此时,因为上述代码直接使用实现类导致了现在能做的更改十分有限(修改的话,可能会大范围改动代码)。
为了今后升级和维护起来方便,我们需要用到php的接口来改造上面的方法。先介绍一下php接口的相关知识:
阅读全文…
SOAP的特点:
1.SOAP消息必须用xml进行编码
2.SOAP消息必须使用SOAP Enevlope命名空间
3.SOAP消息必须使用SOAP Encoding命名空间
4.SOAP消息不能包含DTD引用
5.SOAP消息不能包含XML处理指令
SOAP消息的基本结构:
[html]
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Header>
…
…
</soap:Header>
<soap:Body>
…
…
<soap:Fault>
…
…
</soap:Fault>
</soap:Body>
</soap:Envelope>
[/html]
SOAP在默认的命名空间中定义了3个属性:
1.actor属性:
SOAP的actor属性可被用于将Header元素许知道一个特定的端点。
语法:
soap:actor=”URI”;
2.mustUnderstand属性:
SOAP的mustUnderstand属性可以用于标识标题项对于要对其进行处理的接收者来说是强制的还是可选的。
假如您向header元素的某个子元素添加了mustUnderstand=1,则它可以指示处理此头部的接收者必须认可此元素。加入接收者无法认可此元素,则处理此头部时必须失效。
语法:
soap:mustUnderstand= “0|1″
SOAP的Fault元素:
在一条SOAP消息中,Fault元素只能出现一次
SOAP的Fault元素用于下列子元素:
1.供识别鼓掌的代码
a. VersionMismatch: SOAP Envelope元素的无效命名空间被发现
b. MustUnderstand: Header元素的一个直接子元素(带有设置为1的mustUnderstand属性)无法被理解。
c. Client: 消息构成不正确,或包含了不正确的信息
d. Server: 服务器有问题,因此无法将处理进行下去
2.可供人阅读有关公章的说明
3.有关是谁引发故障的信息
4.存留涉及Body元素的应用程序专用错误信息
SOAP HTTP Binding
1.SOAP方法指的是遵循SOAP编码规则的HTTP请求响应
2.HTTP + XML = SOAP
3.SOAP请求可能是POST也可能是GET
4.HTTP POST请求规定至少两个HTTP头:Content-Type和Content-Length
Content-Type:SOAP请求和响应的Content-Type头可以定义消息的MIME类型,以及用于请求活响应的XML主题的字符编码(可选).
语法:Content-Type:MIMEType; charset=charactor-encoding
例子:POST /item HTTP/1.1
Content-Type:application/soap+xml; charset=utf-8
Content-Length: SOAP请求和响应的Content-Length头规定响应或请求主体的字节数
语法:Content-Length: bytes
例子:POST /item HTTP/1.1
Content-Type: application/soap+xml; charset=utf-8
Content-Length:250
作者: 石巍
原载: 10V
版权所有,转载时必须以超链接形式注明作者和原始出处及本声明。
本文链接: http://www.smartwei.com/soap-note.html
最近打算学习一下SOAP,需要用到XML的相关知识,趁这个机会,看了一些XML相关的内容,这篇文章就记录一下以前没有注意到的XML的相关知识,特别是针对不同浏览器如何使用Javascript解析XML。
阅读全文…

上一篇文章,给大家介绍了一个获取脚本执行时间的php类, 今天再给大家介绍一个。今天的这个获取脚本执行时间的php类的特别之处是它提供了“暂停|开启”功能,可以让我们很方便的跳过某些代码的执行时间。
举个例子,当我们只想知道页面中SQL的执行时间是多长,我们就可以在每次进行SQL查询之前,开始计时,查询之后暂停计时,然后开始处理数据,下一次进行SQL查询时再开始计时…这样最终的执行时间,就是我们想要的SQL执行时间了。
下面看一下代码
阅读全文…