WebService服务端的定义
<?php
use PDO;
class Module {
private $nombre = '';
protected $itemid1 = '';
/**
* Module::__construct() 企业信息类的构造函数.
*
* @param string $nombre
* @return string
**/
public function __construct($itemid = '') {
$this->itemid1 = $itemid;
}
/**
* 得到某一个模型的版本
*
* @param string $itemid 模型编号
* @return string
**/
public function versions($moduleid = ''){
/*return $itemid;*/
$pdo = new PDO("mysql:host=localhost;port=3306", 'andiffgw', 'Andiff123.', array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
));
$pdo->query("USE `andiffguanwang`;");
$arr = array();
$result = $pdo->query("select * from fa_modulestock where 1 and moduleid = '".$moduleid."'");
while($row = $result->fetch()){
$arr[] = $row;
}
return json_encode($arr);
}
/**
* 得到模型的列表
*
* @param string $name 模型名称
* @return string
**/
public function getModuleList($name = ''){
$pdo = new PDO("mysql:host=localhost;port=3306", 'andiffgw', 'Andiff123.', array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
));
$pdo->query("USE `andiffguanwang`;");
$arr = array();
$result = $pdo->query("select * from fa_module where name like '%".$name."%'");
while($row = $result->fetch()){
$arr[] = $row;
}
return json_encode($arr);
}
/**
* Enterprise::update() Returns server timestamp.
*
* @return string
**/
public function serverTimestamp() {
return time();
}
}
?>
<?php
require_once 'Module.class.php';
// Enciende el servidor o despliega WSDL
if (isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD']=='POST') {
$servidorSoap = new SoapServer('http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER['SERVER_PORT'].$_SERVER['PHP_SELF'].'?wsdl');
$servidorSoap->setClass('Module');
$servidorSoap->handle();
}
else {
require_once 'SoapDiscovery.class.php';
// Crea el servidor de descubrimiento
$disco = new SoapDiscovery('Module','mm');
header("Content-type: text/xml");
if (isset($_SERVER['QUERY_STRING']) && strcasecmp($_SERVER['QUERY_STRING'],'wsdl')==0) {
echo $disco->getWSDL();
}
else {
echo $disco->getDiscovery();
}
}
?>
客户端调用:
try{
$soap = new \SoapClient(null,array('location'=>'http://www.andiff.net/module.php','uri'=>'mm'));
$ids = $this->request->get('ids');
$name = $this->request->get('name');
$enname = $this->request->get('enname');
$this->view->assign("itemid",$ids);
$this->view->assign("name",$name);
$this->view->assign("enname",$enname);
$result2 = $soap->versions($ids);
$arr = array();
$arr = json_decode($result2,true);
$this->view->assign("s2",$arr);
return $this->view->fetch();
}catch(Exction $e){
echo print_r($e->getMessage(),true);
}