웹 서비스란 무엇인가요? 자세한 내용은 백과사전 설명을 참조하세요.웹 서비스 바이두 백과사전.
Soap은 웹 서비스 구현에 사용되는 프로토콜이자 기술 사양입니다.
웹 서비스의 인터페이스를 구현하는 방법에는 두 가지가 있습니다. 하나는 wsdl 문서를 생성해야 하는 방식이고 다른 하나는 wsdl 문서를 생성하지 않아도 되는 방식입니다.
실제 동작에 앞서, 먼저 자신의 환경이 비누를 지원하는지 확인한 후 php.ini 구성 파일을 수정하여 "soap.wsdl_cache_enabled" 항목을 0으로 설정하세요.
wsdl 문서를 생성할 필요가 없습니다
이 방법은 wsdl 문서를 생성하는 데 필요한 방법보다 간단하지만 작업 방법을 가져오는 __getFunctions()와 같은 일부 방법은 지원되지 않습니다. 당신의 선택.
서버측 ts1.php
<?php class testA{ public function sayHi($str){ return 'hi,'.$str; } public function add($a,$b){ return $a+$b; } } $ss = new SoapServer(null, array('uri'=>'sampleA')); $ss->setClass('testA'); $ss->handle();
서버측 ts1.php 파일에 클래스를 생성한 후 SoapServer를 생성하고 설정하면 일관성을 보장하기 위해 uri를 사용합니다.
클라이언트 측 tc1.php
<?php $client = new SoapClient(null, array( 'location'=>'http://10.0.0.232:1075/soap/ts1.php', 'uri'=>'sampleA' )); echo $client->sayHi('Taylor,Swift'); echo "<br/>"; echo $client->add(1,2);
클라이언트 측에서 SoapClient 개체를 사용하여 요청의 특정 주소를 지정합니다. uri 값은 서버 측에 설정된 값과 일치합니다. 일관성.
접속하려면 브라우저에 http://10.0.0.232:1075/soap/tc1.php를 입력하면 아래와 같이 출력되는 것을 볼 수 있습니다.
이 방법은 wsdl 문서를 생성할 필요가 없으며 구현하기 쉽지만 마찬가지로 wsdl 문서가 없기 때문에 클라이언트는 해당 작업 방법을 얻을 수 없습니다. 그러나 wsdl 문서를 생성하면 클라이언트는 단일 요청 주소를 기반으로 서버가 노출하는 모든 인터페이스를 얻을 수 있습니다.
wsdl 문서 생성 방법
wsdl 문서는 일반적으로 공용 클래스 라이브러리 SoapDiscovery를 사용하여 생성할 수 있습니다. 필요한 경우 Baidu Netdisk를 사용하여 SoapDiscovery.class를 직접 다운로드할 수 있습니다. php.php.
서버측 ts2.php
<?php define('WSDL_FILE','ts2.wsdl'); if(!file_exists(WSDL_FILE)){ require_once('SoapDiscovery.class.php'); $sd = new SoapDiscovery('testD', 'liang'); $str = $sd->getWSDL(); file_put_contents(WSDL_FILE, $str); } $ss = new SoapServer(WSDL_FILE); $ss->setClass('testD'); $ss->handle(); class testD{ public function sayHello($world){ return 'hello,'.$world; } public function add($a, $b){ return $a+$b; } }
서버측 ts2.php는 먼저 필요한 wsdl 파일이 존재하는지 확인합니다. 존재하지 않으면 SoapServer 객체를 생성하고 설정합니다. wsdl 문서를 사용하기 때문에 SoapServer 신규가입시에는 wsdl 문서의 주소를 직접 적어주시면 됩니다.
클라이언트 측 tc2.php
<?php $client = new SoapClient('http://10.0.0.232:1075/soap/ts2.wsdl'); print_r($client->__getFunctions()); echo "<br/>"; echo $client->sayHello('Avril Lavigne'); echo "<br/>"; echo $client->add(9,8);
클라이언트 측 tc2.php 파일에는 SoapClient 객체 생성 시 요청한 wsdl 문서의 주소가 직접 채워집니다. 이 문서는 ts2.php에 의해 생성됩니다.
이제 서버측 ts2.php와 클라이언트측 tc2.php가 작성되었으니 이제 ts2.php를 요청해야 합니다. 왜 요청할까요?
먼저 ts2.php를 통해 wsdl 파일을 생성해야 하므로 처음에만 수행하면 되므로 wsdl 문서가 생성된 후에는 다시 수행할 필요가 없습니다.
(나중에 ts2.php를 수정한 경우 기존 wsdl 문서를 삭제한 후 다시 ts2.php를 요청하여 새 wsdl 문서를 생성해야 합니다.)
1 wsdl 문서를 생성하려면 ts2.php를 요청하세요. http://10.0.0.232:1075/soap/ts2.php.
2. 반환된 결과를 보려면 tc2.php를 요청하세요.
3. 브라우저를 통해 wsdl 문서의 주소에 직접 액세스하면 wsdl 문서의 특정 내용을 볼 수 있습니다.
php 비누도 다양하게 지원합니다. 인증, 헤더 설정 등 기타 작업에 대해서는 필요한 경우 공식 문서를 참조하세요.
위 내용은 웹 서비스 인터페이스 서비스를 구현하는 PHP SOAP에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!