SOAP With PHP

Last Updated on July 30, 2022 by Masud Alam

SOAP কি?

Simple Object Access Protocol (SOAP) হচ্ছে W3C recommended, XML এর উপর ভিত্তি করে Platform, Technology এবং Programming Language Independent একটি নিরাপদ application communication protocol , যা Internet/Intranet এর মাধ্যমে একই বা সম্পূর্ণ ভিন্ন Operating System, ভিন্ন Application, ভিন্ন technology এবং এক Programming Language এর সাথে অন্য Programming Language এর যোগাযোগের একটি মাধ্যম। আরো সহজ ভাবে বলা যায় এটা ইন্টারনেটের মাধ্যমে মেসেজ আদান প্রদানের একটি পদ্ধতি। যা ১৯৯৮ সালে Dave Winer, Don Box, Bob Atkinson, এবং Mohsen Al-Ghosein মাইক্রোসফট এর জন্য প্রথম ডিজাইন করেন। এটা সাধারনত এক্সএমএল ফরমেটে হয়ে থাকে এবং http প্রটোকলের মাধ্যমে তথ্য আদান প্রদান করে। http হল এমন একটি প্রটোকল যা দিয়ে ইন্টারনেটে ওয়েবপেজ আদান প্রদান করা হয়ে থাকে, এছাড়া এর অন্য একটি সুবিধা হল এটি বিভিন্ন নেটওয়ার্ক ফায়ারোয়েলকে এড়িয়ে চলতে পারে। যেহেতু ফায়ারওয়েল হাইপারটেক্সট প্রটোকলে পোর্ট ৮০ কে ব্লক করে না, তাই soap মেসেজ এর মাধ্যমে সহজে যেতে পারে।

Zend Certified PHP Engineering (ZCPE) Course

PHP তে SOAP কিভাবে কাজ করে?

যে কোনো technology তে মূলত যখন কোনো end user বা সাধারণ ব্যবহার কারী কোনো request পাঠায় তখন সেই request প্রথমে SOAP Client Server এ যায় , তারপর SOAP Client Server আবার সেই request টি SOAP Server এ পাঠাবে। এবং SOAP SERVER, Client Server এর request টি process করে আবার Client কে Output রিটার্ন করে। ব্যাপারটা আরেকটু ভালোভাবে ব্যাখ্যা করা যাক , ধরুন আপনি আপনার bank account থেকে আপনার current ballance কত আছে তা আপনার Mobile SMS অথবা আপনার Mobile এর Apps থেকে জানতে চাচ্ছেন , তাহলে আপনি কি করবেন? প্রথমে আপনি আপনার Mobile এর Message Option অথবা Apps এ গিয়ে আপনার Bank account Number দিয়ে SMS এর মাধ্যমে অথবা http এর মাধ্যমে একটা request call করবেন , তারপর সেই রিকোয়েস্ট সার্ভিস প্রোভাইডার ভেন্ডর এ অবস্থিত SOAP Clien এ যাবে। SOAP Client আপনার Request টি Bank এ অবস্থিত SOAP Server এ একটা নির্দিষ্ট Format এ পাঠাবে। তারপর SOAP Server আবার সেটি process করে SOAP Client কে রিটার্ন করবে। SOAP client আবার আপনাকে SMS অথবা http এর মাধ্যমে SOAP Server এর response টি forward করবে। নিচের ছবিটি লক্ষ্য করুন:

PHP SOAP client and server communication

PHP SOAP client and server communication

PHP তে কিভাবে SOAP Server তৈরী করবেন?

PHP তে SOAP Server তৈরী করতে হলে আপনাকে নিচের ধাপ গুলো পূরণ করতে হবে :

  • ধাপ-১: PHP এর বিল্টইন ক্লাস SOAPServer Class থেকে new SOAPServer লিখে একটি Object তৈরী করতে হবে। এবং দুটি Parameter পাঠাতে হবে। যার প্রথম Parameter টি হবে একটি WSDL (Web Services Description Language) ফাইলের নাম। দ্বিতীয় Parameter টি হবে SOAP SERVER এর URI (Uniform Resource Identifier). তবে WSDL File না থাকলে আপনাকে NULL Parameter পাঠালেও চলবে।
  • ধাপ-২: SOAP Client থেকে আসা request টি যদি কোনো Class এর মাধ্যমে রিটার্ন করতে চান , তাহলে setClass Method দিয়ে সেই Class টি কে set করে দিতে হবে। আর যদি কোনো function দিয়ে set করতে চান তাহলে addFunction() Method function দিয়ে সেটিকে set করে দিতে হবে।
  • ধাপ-৩: SOAP Request কে Process করার জন্য এবং প্রয়োজনীয় function এবং Method call করার জন্য handle Method কে কল করতে হবে।
  • ধাপ-৪: আপনি চাইলে SOAPFault class দ্বারা SOAP এর error গুলো return করতে পারেন।

চলুন আমরা দুটি নম্বরকে sum করার জন্য একটা SOAP Server তৈরী করি।

File: server.php

<?php 
class MyClass {
  public function sum($num1,$num2) {
    return $num1+$num2;
  }
}

try {
  $server = new SOAPServer(
    NULL,
    array(
     'uri' => 'http://localhost/soap/server.php'
    )
  );

  $server->setClass('MyClass');
  $server->handle();
}

catch (SOAPFault $f) {
  print $f->faultstring;
}
?>

Zend Certified PHP Engineering (ZCPE) Course

PHP তে কিভাবে SOAP Client তৈরী করবেন?

PHP তে SOAP Client তৈরী করতে হলে আপনাকে নিচের ধাপ গুলো পূরণ করতে হবে :

  • ধাপ-১: PHP এর বিল্টইন ক্লাস SOAPClient Class থেকে new SOAPClient লিখে একটি Object তৈরী করতে হবে। এবং দুটি Parameter পাঠাতে হবে। যার প্রথম Parameter টি হবে একটি WSDL (Web Services Description Language) ফাইলের নাম। দ্বিতীয় Parameter টি হবে একটি array যেখানে SOAP SERVER এর URI ,URL এবং trace=1. তবে WSDL File না থাকলে আপনাকে NULL Parameter পাঠালেও চলবে।
  • ধাপ-২: SOAPClient এর __soapCall Method দিয়ে দুটি parameter পাঠাতে হবে , প্রথমটি হচ্ছে SOAP Server এর যেই Class Method অথবা function দিয়ে আপনি SOAP request টি execute করবেন সেই Class Method অথবা function এর নাম দিতে হবে, দ্বিতীয় হচ্ছে একটি array পাঠাতে হবে , যেখানে আপনার function অথবা Method এর Parameter গুলো দিবেন।

চলুন আমরা আমাদের উপরের SOAP সার্ভার এর জন্য একটা SOAP Client তৈরী করি।

File:client.php

<?php
$client = new SoapClient(null, array(
      'location' => "http://localhost/soap/server.php",
      'uri'      => "http://localhost/soap/server.php",
      'trace'    => 1 ));

echo $client->__soapCall("sum",array(5,7));
?>


এখন যদি আপনি server.php file এবং client.php file দুটিকে htdocs/soap folder এ রেখে http://localhost/soap/client.php রান করেন , তাহলে ফলাফল দেখাবে : 12

One comment to “SOAP With PHP”

Leave a Reply