laravel 的控制器中如何写soapserver

有没大神帮给写个例子。感激不尽

阅读 4.5k
1 个回答

和普通的soapserver没差.

1 建个route, 把某个url指到提供soap服务的类

// 需要用post方法
Route::any('test/bar', [
    'uses' => 'TestController@bar',
    'as' => 'test.bar',
]);

2 写个类似如下的函数.

class TestController extends Controller
{
    public function bar(Request $req)
    {
        $server = new \SoapServer(null, ['uri' => 'mysoapuri']);
        $server->setObject(new SoapService());
        ob_start();
        $server->handle();
        return ob_get_clean();
    }
}


class SoapService
{
    public function add($a, $b)
    {
        return $a + $b;
    }
}

3 测试代码

$client = new SoapClient(null, ['uri' => 'mysoapuri', 'location' => 'http://laravel服务器域名/test/bar', ***'trace' => true***]);

try {
    var_dump($client->add(1, 3));
} catch (Exception $e)
{
    var_dump($e);
}
var_dump($client->__getLastResponse());

4 如果需要生成wsdl, 请使用zendframework/zend-soap

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题