kduma / laravel-soap-server
Laravel SOAP 服务端
dev-master
2024-06-04 06:20 UTC
Requires
- php: ^7.4|^8.0|^8.1|^8.2
- ext-soap: *
- laminas/laminas-soap: ^2.11
Requires (Dev)
- orchestra/testbench: ^4.0
- phpunit/phpunit: ^8.0
This package is auto-updated.
Last update: 2024-09-04 06:51:17 UTC
README
Laravel SOAP 服务端
安装
您可以通过 composer 安装此包
composer require kduma/laravel-soap-server
用法
创建服务器类 - 记得提供正确的类型提示和文档块
class SoapDemoServer { /** * Adds two numbers * * @param float $a * @param float $b * * @return float */ public function sum(float $a = 0, float $b = 0): float { return $a + $b; } /** * Returns your data * * @return Person */ public function me(): Person { return new Person('John', 'Doe'); } /** * Says hello to person provided * * @param Person $person * * @return string */ public function hello(Person $person): string { return sprintf("Hello %s!", $person->first_name); } }
...以及 DTO 对象
class Person { /** * @var string */ public $first_name; /** * @var string */ public $last_name; /** * @param string $first_name * @param string $last_name */ public function __construct(string $first_name, string $last_name) { $this->first_name = $first_name; $this->last_name = $last_name; } }
为您的 SOAP 服务器创建控制器类
class MySoapController extends \KDuma\SoapServer\AbstractSoapServerController { protected function getService(): string { return SoapDemoServer::class; } protected function getEndpoint(): string { return route('my_soap_server'); } protected function getWsdlUri(): string { return route('my_soap_server.wsdl'); } protected function getClassmap(): array { return [ 'SoapPerson' => Person::class, ]; } }
在您的路由文件中注册路由
Route::name('my_soap_server.wsdl')->get('/soap.wsdl', [MySoapController::class, 'wsdlProvider']); Route::name('my_soap_server')->post('/soap', [MySoapController::class, 'soapServer']);
测试
composer test
变更日志
请参阅 CHANGELOG 了解最近更改的详细信息。
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全性
如果您发现任何安全问题,请通过电子邮件 git@krystian.duma.sh 报告,而不是使用问题跟踪器。
鸣谢
许可证
MIT 许可证 (MIT)。请参阅 许可证文件 了解更多信息。
Laravel 包模板
此包使用 Laravel 包模板 生成。