第一步:服务端文件
<?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:
php arrayaccess 官方的说法是让你能以数组的形式访问对象,对于这种php内置接口一直不太明白有什么用,坚持多看文章,终于理解,特来分享,思路不同,更易于理解。(1).创建一个学生类,并且实现arrayaccess 接口。<?php class studen...
重构框架的时候想要考虑支持下cli模式,于是参考了thinkphp的底层。/** * 获取应用根目录 * @return string */ public static function getRootP...
今天帮朋友查询wordpress执行超级慢的原因,特此记录开启fpm的慢日志,记录执行超过30秒的脚本request_slowlog_timeout = 30 slowlog = var/log/slow.log查看日志[23-May-2019 17...
php7新增的特性(1).强制限制只能返回一种类型<?php class task { } //must return an integer function add(): int { &nb...
自己的composer已经发布到packagist,但是无法使用composer require easy-task/easy-task来安装,只能在配置文件使用如下方式安装:"require": { "easy...
有时候我们需要爬一个接口,但是这个接口需要很多参数,包括header和cookie要去编写,使用php curl模拟实在太慢。我们可以通过浏览器的network来复制请求为curl命令。例如我需要模拟请求接口地址:https://www.xkmz.cc/Ajax/Debug/delly,我们只需要在...