たとえば、4つのファイルが必要です。
- server.php- 実際にはSOAPサーバー自体
- wsdl.php -WSDL
- class.php- 関数を持つクラス
- client.php- 仕事の例としてのクライアント
server.php
require_once 'Zend/Loader.php' ;
Zend_Loader::registerAutoload();
include ( 'class.php' );
$server = new Zend_Soap_Server( "http://localhost/soap/wsdl.php" );
$server->setClass( 'Server' );
$server->handle();
</code>
* This source code was highlighted with Source Code Highlighter .
wsdl.php
require_once 'Zend/Loader.php' ;
require_once 'class.php' ;
Zend_Loader::registerAutoload();
$wsdl = new Zend_Soap_AutoDiscover();
$wsdl->setUri( 'http://localhost/soap/server.php' );
$wsdl->setClass( 'Server' );
$wsdl->handle();
* This source code was highlighted with Source Code Highlighter .
server.php-ご覧のとおり、 wsdl.phpのように、それ自体にはロジックがありません。 どちらも、呼び出し関数がすでに含まれているclass.phpクラスを参照します。 他のすべてはZend_Soapによって行われます。
class.php
<?php
class Server {
private $_db;
/** <br/>
* . <br/>
* . <br/>
*/ <br/>
function __construct() {
try {
$ this ->_db = new Zend_Db_Adapter_Oracle(array(
'username' => 'demo' ,
'password' => 'demo' ,
'dbname' => '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(COMMUNITY=tcp.telekom.lv)(PROTOCOL=TCP)(Host=127.0.0.1)(Port=1521)))(CONNECT_DATA=(SID=XE)))'
));
} catch (Zend_Exception $e) {
return array( 'code' => 200,
'error' => 'Database connection error' );
}
}
/** <br/>
* Get Simple Demo Action <br/>
* <br/>
* @param array $userData <br/>
* @param array $requestData <br/>
* @return array <br/>
*/ <br/>
public function getSimpleAction($userData = array(), $requestData = array()) {
/** <br/>
* $userData = array('username' => '', 'password' => '') <br/>
* $requestData = array('value1' => '', 'value2' => '') <br/>
*/ <br/>
if (!$ this ->_checkCredentials($userData)) {
return array( 'code' => 500,
'error' => ' .' );
}
$array = array();
try {
/** <br/>
* <br/>
* Zend_Exception - . <br/>
* <br/>
* throw new Zend_Exception('Error :(', 100); <br/>
* <br/>
* $array , <br/>
* . <br/>
* <br/>
* $array['ok'] = 'true'; <br/>
*/ <br/>
} catch (Zend_Exception $e) {
return array( 'code' => 101,
'error' => 'Exception: ' . $e->getMessage());
}
return $array;
}
private function _checkCredentials($userData) {
/** <br/>
* <br/>
* return true/false <br/>
*/ <br/>
return true ;
}
/** <br/>
* . <br/>
*/ <br/>
function __destruct() {
$ this ->_db->closeConnection();
}
}
* This source code was highlighted with Source Code Highlighter .
最も重要なことは、主な機能に関するコメントを忘れないことです。
/**
* Get Simple Demo Action <br/>
* <br/>
* @param array $userData <br/>
* @param array $requestData <br/>
* @return array <br/>
*/ <br/>
* This source code was highlighted with Source Code Highlighter .
パラメータのタイプを、string、array、intのいずれであるかを説明します。 または他の許可された。
client.php
require_once 'Zend/Loader.php' ;
Zend_Loader::registerAutoload();
$client = new Zend_Soap_Client( "http://localhost/soap/wsdl.php" );
$userdata = array( 'username' => 'demoUsername' , 'password' => 'demoPassword' );
$requestData = array( 'parameter' => 'value' );
print_r($client->getSimpleAction($userdata, $requestData));
* This source code was highlighted with Source Code Highlighter .
クライアントの助けを借りて、パフォーマンスを確認するだけです。
Zend_Soapの簡単な説明はこれで終わりです。 原則として、そのようなベースで、あなたは構築することができます実質的にSOAPアプリケーション。