The examples in the subsequent sections illustrate the following aspects of PHP for SCA:
-
How PHP annotations are used to define PHP classes as SCA components, and how annotations are used to define the services.
-
How an SCA component can be exposed as a Web service
-
How an SCA component can consume a Web service, whether provided by another SCA component or by some other service which knows nothing of SCA
-
How an SCA component can call another SCA component locally (within the same process and on the same call stack)
-
How a client script which is not an SCA component can use the getService call to obtain a proxy for an SCA component.
-
How data structures such as Addresses, or Puchase Orders, are represented as Service Data Objects, and handled.
-
How SCA components are deployed, and in particular how and when WSDL is generated for a service.
-
How parameters are always passed by value (and not by reference) between components, even when the calls are local. This ensures that the semantics of a call do not change depending on the location of a component.
-
How positional parameters to a service are supported, even when the underlying WSDL is document literal wrapped, and naturally supports only named parameters.
-
How business and runtime exceptions are handled.