I try to setup a SOAP Server for Laravel Framework 5.5.13. Therefore I have created two classes (Server.php and Client.php) and two Controllers, SoapServerController and SoapClientController.
Here's the source code:
app/Classes/Soap/Server.php
namespace App\Classes\Soap;
class Server {
public function __construct() {
}
public function getDate() {
return date('Y-m-d');
}
}
app/Classes/Soap/Client.php
namespace App\Classes\Soap;
class Client {
protected $instance;
public function __construct() {
$params = array( 'uri' => '/soap/server',
'location' => url('/soap/server'),
'trace' => 1,
'soap_version' => SOAP_1_2
);
$this->instance = new \SoapClient( null, $params );
}
public function getDate() {
return $this->instance->getDate();
}
}
app/Http/Controllers/SoapServerController.php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Classes\Soap;
class SoapServerController extends Controller
{
public function index() {
$params = array( 'uri' => url('/soap/server') );
$server = new \SoapServer( null, $params );
$server->setClass( Soap\Server::class );
$server->handle();
}
}
app/Http/Controllers/SoapClientController.php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Classes\Soap;
class SoapClientController extends Controller
{
public function index() {
$client = new Soap\Client;
$client->getDate();
}
}
When I open the route /api/soap/client, I get the error:
SoapFault: Method Not Allowed
Do I have to change something in my routes file?