1. Basic concepts
SOAP (Simple Object Access Protocol) Simple Object Access Protocol is a simple protocol for exchanging information in a decentralized or distributed environment. It is an XML-based protocol. It consists of four parts: SOAP envelope (envelop), which defines A framework that describes what is in a message, who sent it, who should accept and process it and how to process them; SOAP encoding rules (encoding rules), used to represent instances of the data types that the application needs to use; SOAP RPC Representation (RPC representation), which represents the protocol of remote procedure calls and responses; SOAP binding (binding), which uses the underlying protocol to exchange information.
WSDL (Web Service Description Language) is the standard XML format for describing XML Web services. WSDL was proposed by developers such as Ariba, Intel, IBM, and Microsoft. It defines the relevant operations and messages sent and received by a given Web service in an abstract way that is independent of specific languages. By its definition, you cannot yet think of WSDL as an object interface definition language. For example, application architectures such as CORBA or COM will use object interface definition languages. WSDL remains protocol neutral, but it does have built-in support for binding to SOAP, thus establishing an inseparable link with SOAP. So, when I discuss WSDL in this article, I will assume that you use SOAP as your communication protocol.
Although SOAP and WSDL are two major standards for web services, they are not necessarily connected and can be used independently. The relationship between them is similar to the relationship between HTTP and Html. The former is a protocol, and the latter is a description of a Web Server.
2. Configuration under PHP5
In the php configuration file php.ini, find
extension=php_soap.dll
Then remove the “;” sign in front and restart the web service
3. Query web service methods, parameters, and data types
The order entry interface of a provincial telecommunications company is http://***.******.com/services/AcceptedBusiness?wsdl
We use the __geunctions() and __getTypes() methods of SoapClient to view the interface The methods, parameters and data types
Only the interfaces listed in __getFunctions can be called by soap.
Create the code soap.php in the root directory
<?php header("content-type:text/html;charset=utf-8"); try { $client = new SoapClient("http://***.******.com/services/AcceptedBusiness?wsdl"); print_r($client->__getFunctions()); print_r($client->__getTypes()); } catch (SOAPFault $e) { print $e; } ?>
After running: http://localhost/soap.php in the browser, the return result is as follows
Array ( [0] => ArrayOf_xsd_anyType introduceAcceptedBusiness(string $c3, string $c4, string $linkman, string $linknum, string $num, string $idcard, string $remark, string $address) [1] => ArrayOf_xsd_anyType introduceAcceptedBusinessByAiZhuangWei(string $subname, string $linkphone, string $idcard, string $address, string $businesstype, string $marketcode, string $surveycode, string $commanager, string $commanagerphone, string $bendiwang, string $fenju, string $zhiju, string $remark) [2] => string introduceAcceptedBusinessByStandardInterface(string $xmlStr) [3] => string introduceAcceptedBusinessByCallOut(string $xmlStr) [4] => string introduceAcceptedBusinessByYddj(string $xmlParam) [5] => ArrayOf_xsd_anyType queryAcceptedBusinessByAiZhuangWei(string $surveycode, string $starttime, string $endtime) [6] => string queryCallOutOrderByConfig(string $xmlParam) ) Array ( [0] => anyType ArrayOf_xsd_anyType[] )
There is a method introduceAcceptedBusinessByStandardInterface(string $xmlStr), which will be the interface to be used mentioned in the development document, and the parameter is an xml string
In addition, some interfaces mention SoapHeader authentication, which requires adding the __setSoapHeaders method. For details, please check http://php.net/manual/zh/soapclient.setsoapheaders.php
4. Submit order
This step is to splice the xml string according to the development document, and then pass it in as a parameter of introduceAcceptedBusinessByStandardInterface
Create acceptedbusiness.php with the following content
<?php header("content-type:text/html;charset=utf-8"); try { $client = new SoapClient('http://***.*******.com/services/AcceptedBusiness?wsdl'); $xml = " <?xml version='1.0' encoding='UTF-8' ?> <package> <c3>**电信</c3> <c4></c4> <linkman>张三</linkman> <linknum>13412341234</linknum> <linkaddress>广东深圳</linkaddress> <remark>iPhone 6</remark> <channel></channel> <gridcode>1111111111111111111111111111111</gridcode> <agentcode>2111</agentcode> <key>1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111</key> </package> "; $return = $client->introduceAcceptedBusinessByStandardInterface($xml); print_r($return); } catch (SOAPFault $e) { print_r('Exception:'.$e); } ?>
After executing in the browser, return
<?xml version="1.0" encoding="UTF-8"?> <package> <status>0</status> <reason>入单成功!</reason> <orderseq>2014100905523549742</orderseq> </package>
Reference: http://www.cnblogs.com/txw1958/p/php5-soap-wsdl.html
The above introduces the implementation process of WSDL and SOAP calls under PHP5, including various aspects. I hope it will be helpful to friends who are interested in PHP tutorials.

TomakePHPapplicationsfaster,followthesesteps:1)UseOpcodeCachinglikeOPcachetostoreprecompiledscriptbytecode.2)MinimizeDatabaseQueriesbyusingquerycachingandefficientindexing.3)LeveragePHP7 Featuresforbettercodeefficiency.4)ImplementCachingStrategiessuc

ToimprovePHPapplicationspeed,followthesesteps:1)EnableopcodecachingwithAPCutoreducescriptexecutiontime.2)ImplementdatabasequerycachingusingPDOtominimizedatabasehits.3)UseHTTP/2tomultiplexrequestsandreduceconnectionoverhead.4)Limitsessionusagebyclosin

Dependency injection (DI) significantly improves the testability of PHP code by explicitly transitive dependencies. 1) DI decoupling classes and specific implementations make testing and maintenance more flexible. 2) Among the three types, the constructor injects explicit expression dependencies to keep the state consistent. 3) Use DI containers to manage complex dependencies to improve code quality and development efficiency.

DatabasequeryoptimizationinPHPinvolvesseveralstrategiestoenhanceperformance.1)Selectonlynecessarycolumnstoreducedatatransfer.2)Useindexingtospeedupdataretrieval.3)Implementquerycachingtostoreresultsoffrequentqueries.4)Utilizepreparedstatementsforeffi

PHPisusedforsendingemailsduetoitsbuilt-inmail()functionandsupportivelibrarieslikePHPMailerandSwiftMailer.1)Usethemail()functionforbasicemails,butithaslimitations.2)EmployPHPMailerforadvancedfeatureslikeHTMLemailsandattachments.3)Improvedeliverability

PHP performance bottlenecks can be solved through the following steps: 1) Use Xdebug or Blackfire for performance analysis to find out the problem; 2) Optimize database queries and use caches, such as APCu; 3) Use efficient functions such as array_filter to optimize array operations; 4) Configure OPcache for bytecode cache; 5) Optimize the front-end, such as reducing HTTP requests and optimizing pictures; 6) Continuously monitor and optimize performance. Through these methods, the performance of PHP applications can be significantly improved.

DependencyInjection(DI)inPHPisadesignpatternthatmanagesandreducesclassdependencies,enhancingcodemodularity,testability,andmaintainability.Itallowspassingdependencieslikedatabaseconnectionstoclassesasparameters,facilitatingeasiertestingandscalability.

CachingimprovesPHPperformancebystoringresultsofcomputationsorqueriesforquickretrieval,reducingserverloadandenhancingresponsetimes.Effectivestrategiesinclude:1)Opcodecaching,whichstorescompiledPHPscriptsinmemorytoskipcompilation;2)DatacachingusingMemc


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

SublimeText3 Linux new version
SublimeText3 Linux latest version

WebStorm Mac version
Useful JavaScript development tools
