第一步:服务端文件
<?php
$wsdlfile='webservice.wsdl';
ini_set('soap.wsdl_cache_enabled','0'); //关闭WSDL缓存
//001.创建webservice接口类
class UserAction{
//创建用户方法
public function create($username,$password)
{
return 'Create success!';
}
//删除用户方法
public function del($userid)
{
return 'Del success!';
}
}
//002.通过第三方类库创建生成wsdl文件
require_once 'SoapDiscovery.class.php';
$SoapDis=new SoapDiscovery('UserAction','soap'); //soap可以自己定义,无所谓的
$WsdlRev=$SoapDis->getWSDL();
//if(!file_exists($wsdlfile)){
file_put_contents($wsdlfile, $WsdlRev);
//}
//003.通过wsdl创建服务
$webserver = new SoapServer($wsdlfile);
$webserver->setClass('UserAction');
$webserver->handle();第二步:客户端文件
<?php
$ws=new SoapClient('http://learn.cn/webservice.wsdl');
$ret=$ws->create('gao','123456');
var_dump($ret);
?>下载demo:
【一】.抽象类假设如下场景:团队准备开发某网站,表建好了,页面设计好了.A组负责开发底层数据库操作类(DB),B组负责调用DB类.但是此时A组发生了争执,MySQL? Oracle? DB2? sqlite?到底使用什么数据库?B组.... 进入漫长的等待.解决方法:A组和B组 先定1个数据库类的模...
<?php /* *算法学习自百度.只是学习和记录 */ header("Content-type:text/html;charset=utf-8"); //1.设置奖项,id是奖项id,name是中奖名称,v是中奖概率 $arr =&n...
php调用Webservice基本语法如下:$url ='xxxxxxx.cn' //链接服务器端 $client = new SoapClient($url);通过以上语法已经连接到webservice,也可将wsdl在本地使用,...
ThinkPHP中有一个debug调试功能,能输出报错文件的信息,并能看到这个函数被哪些函数调用,从框架的启动开始记录,特别方便调试。于是研究了下它的底层给予了实现。<?php //--框架核心--Start //框架内置错误处理 function errDealWith($er...
重构框架的时候想要考虑支持下cli模式,于是参考了thinkphp的底层。/** * 获取应用根目录 * @return string */ public static function getRootP...
Redis提供了发布订阅功能,可以用于消息的传输,Redis的发布订阅机制包括三个部分,发布者(publisher),订阅者(subscriber)和频道(channel)。 发布者和订阅者都是Redis客户端,Channel则为Redis服务器端,发布者将消息发送到某个的频道,订阅了这个...