หน้า 1 จากทั้งหมด 1

วิธีการสร้าง WebService อย่างง่ายด้วย ZendSOAP

โพสต์แล้ว: 11/05/2012 6:01 pm
โดย batman1292
หัวข้อนี้จะเป็นการสร้าง WebServices อย่างง่ายด้วย ZendSOAP โดยที่อันดับแรกให้โหลดไฟล์ที่ได้แนบเอาไว้ แตกไฟล์แล้วนำไปไว้ใน Folder ที่เราจะทำการเขียนโค๊ด
จากนั้นก็แบ่งโค๊ดออกเป็น 2 ส่วนเหมือนเดิม
โดยส่วนแรกจะเป็นส่วนของ Server จะเป็นไปตามโค๊ดด้านล่างนี้

โค้ด: เลือกทั้งหมด

require('Zend/Soap/AutoDiscover.php');
require('Zend/Soap/Server.php');

function hello($input) {
    return "Hello".$input;
}

if(isset($_GET['wsdl'])) {
    $autodiscover = new Zend_Soap_AutoDiscover();
    $autodiscover->addFunction('hello');
    $autodiscover->handle();
}else{
    $server = new Zend_Soap_Server( 'http://localhost/***/yyy.php?wsdl' );
    $server->addFunction("hello");
    $server->handle();
} 

จากโค๊ดดังกล่าว ส่วนแรกจะเป็นการดึง library ที่จะใช้ในส่วนของ Server โดยเราจะดึงมา 2 ไฟล์ตามนี้

โค้ด: เลือกทั้งหมด

require('Zend/Soap/AutoDiscover.php')
require('Zend/Soap/Server.php') 
จากนั้นเป็นส่วนของฟังก์ชันที่เราได้สร้างเอาไว้
ต่อมาจะสังเกตุได้ว่าโค๊ดได้ถูกแบ่งออกเป็น 2 ส่วนคือ

โค้ด: เลือกทั้งหมด

$autodiscover = new Zend_Soap_AutoDiscover();
    $autodiscover->addFunction('hello');
    $autodiscover->handle(); 
ส่วนนี้จะเป็นส่วนที่ทำการเจ็นฟังก์ชันให้เป็นภาษา WSDL แต่ไม่สามารถใช้เป็นส่วนของ Server ดังนั้นเราจึงทำการสร้างอีกส่วนหนึ่งคือ

โค้ด: เลือกทั้งหมด

$server = new Zend_Soap_Server( 'http://localhost/***/yyy.php?wsdl' );
    $server->addFunction("hello");
    $server->handle();
ในส่วนนี้จะเป็นส่วนของ Server จริงๆที่เราสามารถนำไปใช้ต่อได้
ส่วนต่อมาจะเป็นส่วนของ Client จะมีโค๊ดดังนี้

โค้ด: เลือกทั้งหมด

require('Zend/Soap/Client.php');

$client = new Zend_Soap_Client( 'http://localhost/***/yyy.php?wsdl' );

echo( $client->__call( 'hello', array( 'kdkdik' ) ) ); 
ซึ่งในส่วนนี้จะเห็นได้ว่ามีการดึง library มาเหมือนกัน
แล้วจึงเป็นการสร้าง Client โดยใช้ไฟล์ WSDL ที่ได้ทำการเจ็นจากส่วน Server
สุดท้ายเป็นการเรียกใช้ฟังก์ชัน
ข้อมูลเพิ่มเติมสำหรับรายละเอียดปลีกย่อยอื่นๆตามลิงค์นี้http://framework.zend.com/manual/en/zend.soap.html