Zend_Soap-調理方法

最近、私の前に疑問が浮上しました。いくつかの活動のためにSOAPサーバーを編成することです。 Zend_Soapでこれを実装するというアイデアを得ましたが、非常にシンプルであることがわかりました。



たとえば、4つのファイルが必要です。



  1. server.php- 実際にはSOAPサーバー自体
  2. wsdl.php -WSDL
  3. class.php- 関数を持つクラス
  4. 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アプリケーション。




All Articles