Building and Consuming SOAP Services in PHP: A Step-by-Step Guide

Estimated read time 2 min read

SOAP (Simple Object Access Protocol) is a protocol for exchanging structured information in web services. PHP provides built-in functionalities for creating and consuming SOAP services. In this article, we’ll explore the process of building and consuming SOAP services in PHP with step-by-step examples.

Part 1: Creating a Simple SOAP Service

Step 1: Set Up a PHP Server

Create a PHP file to act as the server. Let’s name it soap_server.php:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<?php
// Define a simple SOAP service
class CalculatorService {
public function add($a, $b) {
return $a + $b;
}
public function subtract($a, $b) {
return $a - $b;
}
}
// Create a SOAP server
$server = new SoapServer(null, ['uri' => 'http://localhost/soap_server.php']);
$server->setClass('CalculatorService');
// Handle SOAP requests
$server->handle();
?>
<?php // Define a simple SOAP service class CalculatorService { public function add($a, $b) { return $a + $b; } public function subtract($a, $b) { return $a - $b; } } // Create a SOAP server $server = new SoapServer(null, ['uri' => 'http://localhost/soap_server.php']); $server->setClass('CalculatorService'); // Handle SOAP requests $server->handle(); ?>
<?php
// Define a simple SOAP service
class CalculatorService {
    public function add($a, $b) {
        return $a + $b;
    }

    public function subtract($a, $b) {
        return $a - $b;
    }
}

// Create a SOAP server
$server = new SoapServer(null, ['uri' => 'http://localhost/soap_server.php']);
$server->setClass('CalculatorService');

// Handle SOAP requests
$server->handle();
?>

Step 2: Start the PHP Server

Open a terminal, navigate to the directory containing soap_server.php, and run the PHP built-in server:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
php -S localhost:8000
php -S localhost:8000
php -S localhost:8000

Your SOAP service is now running at http://localhost:8000/soap_server.php.

Part 2: Consuming the SOAP Service

Step 3: Create a PHP Client

Now, let’s create a PHP client to consume the SOAP service. Create a new file named soap_client.php:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<?php
// Create a SOAP client
$client = new SoapClient(null, [
'location' => 'http://localhost:8000/soap_server.php',
'uri' => 'http://localhost/soap_server.php',
]);
// Call the add method on the SOAP service
$resultAdd = $client->add(5, 3);
echo "Result of adding: $resultAdd\n";
// Call the subtract method on the SOAP service
$resultSubtract = $client->subtract(10, 4);
echo "Result of subtracting: $resultSubtract\n";
?>
<?php // Create a SOAP client $client = new SoapClient(null, [ 'location' => 'http://localhost:8000/soap_server.php', 'uri' => 'http://localhost/soap_server.php', ]); // Call the add method on the SOAP service $resultAdd = $client->add(5, 3); echo "Result of adding: $resultAdd\n"; // Call the subtract method on the SOAP service $resultSubtract = $client->subtract(10, 4); echo "Result of subtracting: $resultSubtract\n"; ?>
<?php
// Create a SOAP client
$client = new SoapClient(null, [
    'location' => 'http://localhost:8000/soap_server.php',
    'uri' => 'http://localhost/soap_server.php',
]);

// Call the add method on the SOAP service
$resultAdd = $client->add(5, 3);
echo "Result of adding: $resultAdd\n";

// Call the subtract method on the SOAP service
$resultSubtract = $client->subtract(10, 4);
echo "Result of subtracting: $resultSubtract\n";
?>

Step 4: Run the PHP Client

Open a new terminal, navigate to the directory containing soap_client.php, and run the PHP script:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
php soap_client.php
php soap_client.php
php soap_client.php

You should see the results of the SOAP service operations:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Result of adding: 8
Result of subtracting: 6
Result of adding: 8 Result of subtracting: 6
Result of adding: 8
Result of subtracting: 6

Congratulations! You have successfully created and consumed a simple SOAP service in PHP.

Conclusion

Creating and consuming SOAP services in PHP is a straightforward process. In this guide, we’ve walked through the steps of setting up a PHP SOAP server and consuming it with a PHP client. This is a fundamental example, and in real-world scenarios, you might encounter more complex SOAP services with WSDL (Web Services Description Language) definitions. Understanding the basics provided here will serve as a solid foundation for working with SOAP services in various PHP projects.

Related Articles