First check in of Service Component Architecture (SCA) documentation

git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@227387 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
Matthew Peters 2007-01-16 13:45:53 +00:00
parent c62eb80c51
commit 949123ba94
8 changed files with 3674 additions and 0 deletions

1344
reference/sca/backup.xml Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,29 @@
<?xml version='1.0' encoding='iso-8859-1'?>
<!-- $Revision: 1.1 $ -->
<!-- Generated by xml_proto.php v2.1. Found in /scripts directory of phpdoc. -->
<section id="sca.constants">
&reftitle.constants;
&extension.constants;
<para>None</para>
</section>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View file

@ -0,0 +1,170 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<!-- Generated by xml_proto.php v2.2. Found in /scripts directory of phpdoc. -->
<refentry id="function.SCA-LocalProxy-createDataObject">
<refnamediv>
<refname>SCA_LocalProxy::createDataObject</refname>
<refpurpose> create an SDO </refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>void</type>
<methodname>SCA_LocalProxy::createDataObject</methodname>
<methodparam>
<type>string</type>
<parameter>type_namespace_uri</parameter>
</methodparam>
<methodparam>
<type>string</type>
<parameter>type_name</parameter>
</methodparam>
</methodsynopsis>
&warn.experimental.func;
<para> This method is used inside either an ordinary PHP script or an SCA
component that needs to create an SDO to pass to a local service. The
parameters are the desired SDO's namespace URI and type name. The
namespace and type must be defined in the interface of the component
that is to be called, so the namespace and type must be defined in one of
the schema files which are specfied on the @types annotation within
the component for which the SCA_LocalProxy object is a proxy. </para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term>
<parameter>type_namespace_uri</parameter>
</term>
<listitem>
<para> The namespace of the type. </para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>type_name</parameter>
</term>
<listitem>
<para> The name of the type. </para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para> Returns the newly created SDO_DataObject. </para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
<variablelist>
<varlistentry>
<term>
<parameter>SDO_TypeNotFoundException</parameter>
</term>
<listitem>
<para> Thrown if the namespaceURI and typeName do not correspond
to a type in any of the schema files specified in the @types
annotations within the component for which the SCA_LocalProxy
object is a proxy.. </para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<!-- Use when a CHANGELOG exists
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description</entry>
</row>
</thead>
<tbody>
<row>
<entry>Enter the PHP version of change here
<entry>Description of change
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
-->
<!-- Use when examples exist
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>A <function>xxx::xxx</function> example</title>
<para>
Any text that describes the purpose of the example, or
what goes on in the example should go here (inside the
<example> tag, not out
</para>
<programlisting role="php">
<![CDATA[
<?php
if ($anexample === true) {
echo 'Use the PEAR Coding Standards';
}
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Use the PEAR Coding Standards
]]>
</screen>
</example>
</para>
</refsect1>
-->
<!-- Use when adding See Also links
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function></function></member>
<member>Or <link linkend="somethingelse">something else</link></member>
</simplelist>
</para>
</refsect1>
-->
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View file

@ -0,0 +1,171 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<!-- Generated by xml_proto.php v2.2. Found in /scripts directory of phpdoc. -->
<refentry id="function.SCA-SoapProxy-createDataObject">
<refnamediv>
<refname>SCA_SoapProxy::createDataObject</refname>
<refpurpose> create an SDO </refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>void</type>
<methodname>SCA_SoapProxy::createDataObject</methodname>
<methodparam>
<type>string</type>
<parameter>type_namespace_uri</parameter>
</methodparam>
<methodparam>
<type>string</type>
<parameter>type_name</parameter>
</methodparam>
</methodsynopsis>
&warn.experimental.func;
<para> This method is used inside either an ordinary PHP script or an SCA
component that needs to create an SDO to pass to a web service. The
parameters are the desired SDO's namespace URI and type name. The
namespace and type must be defined in the interface of the component
that is to be called, so the namespace and type must be defined within
the WSDL for the web service. If the web service is also an SCA component
then the types will have been defined within one of the schema files
which are specfied on the @types annotation within the component for
which the SCA_SoapProxy object is a proxy. </para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term>
<parameter>type_namespace_uri</parameter>
</term>
<listitem>
<para> The namespace of the type. </para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>type_name</parameter>
</term>
<listitem>
<para> The name of the type. </para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para> Returns the newly created SDO_DataObject. </para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
<variablelist>
<varlistentry>
<term>
<parameter>SDO_TypeNotFoundException</parameter>
</term>
<listitem>
<para> Thrown if the namespaceURI and typeName do not correspond
to a type found in the WSDL that was used to initialise this
SCA_SoapProxy. </para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<!-- Use when a CHANGELOG exists
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description</entry>
</row>
</thead>
<tbody>
<row>
<entry>Enter the PHP version of change here
<entry>Description of change
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
-->
<!-- Use when examples exist
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>A <function>xxx::xxx</function> example</title>
<para>
Any text that describes the purpose of the example, or
what goes on in the example should go here (inside the
<example> tag, not out
</para>
<programlisting role="php">
<![CDATA[
<?php
if ($anexample === true) {
echo 'Use the PEAR Coding Standards';
}
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Use the PEAR Coding Standards
]]>
</screen>
</example>
</para>
</refsect1>
-->
<!-- Use when adding See Also links
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function></function></member>
<member>Or <link linkend="somethingelse">something else</link></member>
</simplelist>
</para>
</refsect1>
-->
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View file

@ -0,0 +1,167 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<!-- Generated by xml_proto.php v2.2. Found in /scripts directory of phpdoc. -->
<refentry id="function.SCA-createDataObject">
<refnamediv>
<refname>SCA::createDataObject</refname>
<refpurpose> create an SDO </refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>void</type>
<methodname>SCA::createDataObject</methodname>
<methodparam>
<type>string</type>
<parameter>type_namespace_uri</parameter>
</methodparam>
<methodparam>
<type>string</type>
<parameter>type_name</parameter>
</methodparam>
</methodsynopsis>
&warn.experimental.func;
<para> This method is used inside an SCA component that needs to create
an SDO to return. The parameters are the desired SDO's namespace URI
and type name. The namespace and type must be defined in one of the
schema files which are specfied on the @types annotation within the
component. </para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term>
<parameter>type_namespace_uri</parameter>
</term>
<listitem>
<para> The namespace of the type. </para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<parameter>type_name</parameter>
</term>
<listitem>
<para> The name of the type. </para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para> Returns the newly created SDO_DataObject. </para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
<variablelist>
<varlistentry>
<term>
<parameter>SDO_TypeNotFoundException</parameter>
</term>
<listitem>
<para> Thrown if the namespaceURI and typeName do not correspond
to a type in any of the schema files specified in the @types
annotations. </para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<!-- Use when a CHANGELOG exists
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description</entry>
</row>
</thead>
<tbody>
<row>
<entry>Enter the PHP version of change here
<entry>Description of change
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
-->
<!-- Use when examples exist
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>A <function>xxx::xxx</function> example</title>
<para>
Any text that describes the purpose of the example, or
what goes on in the example should go here (inside the
<example> tag, not out
</para>
<programlisting role="php">
<![CDATA[
<?php
if ($anexample === true) {
echo 'Use the PEAR Coding Standards';
}
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Use the PEAR Coding Standards
]]>
</screen>
</example>
</para>
</refsect1>
-->
<!-- Use when adding See Also links
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function></function></member>
<member>Or <link linkend="somethingelse">something else</link></member>
</simplelist>
</para>
</refsect1>
-->
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View file

@ -0,0 +1,148 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<!-- Generated by xml_proto.php v2.2. Found in /scripts directory of phpdoc. -->
<refentry id="function.SCA-getService">
<refnamediv>
<refname>SCA::getService</refname>
<refpurpose>
Obtain a proxy for a service
</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>SCA_LocalProxy or SCA_SoapProxy</type><methodname>SCA::getService</methodname>
<void/>
</methodsynopsis>
&warn.experimental.func;
<para> Examine the target and initialise and return a proxy of the appropriate sort. If the target is for a local PHP component the returned proxy will be an SCA_LocalProxy. If the
target is for a WSDL file, the returned proxy will be a SCA_SoapProxy.</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term>
<parameter>target</parameter>
</term>
<listitem>
<para> An absolute or relative path to the PHP component, or to the WSDL file. A relative path, if specified, is resolved relative to the location of the script issuing the
getService call, and not against the include_path or current working directory.</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
The SCA_LocalProxy or SCA_SoapProxy.
</para>
</refsect1>
<!-- Use when ERRORS exist
<refsect1 role="errors">
&reftitle.errors;
<para>
When does this function throw E_* level errors, or exceptions?
</para>
</refsect1>
-->
<!-- Use when a CHANGELOG exists
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description</entry>
</row>
</thead>
<tbody>
<row>
<entry>Enter the PHP version of change here
<entry>Description of change
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
-->
<!-- Use when examples exist
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>A <function>SDO_DAS_ChangeSummary::beginLogging</function> example</title>
<para>
Any text that describes the purpose of the example, or
what goes on in the example should go here (inside the
<example> tag, not out
</para>
<programlisting role="php">
<![CDATA[
<?php
if ($anexample === true) {
echo 'Use the PEAR Coding Standards';
}
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Use the PEAR Coding Standards
]]>
</screen>
</example>
</para>
</refsect1>
-->
<!-- Use when adding See Also links
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function></function></member>
<member>Or <link linkend="somethingelse">something else</link></member>
</simplelist>
</para>
</refsect1>
-->
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

1513
reference/sca/reference.xml Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,132 @@
<?xml version='1.0' encoding='iso-8859-1'?>
<!-- $Revision: 1.1 $ -->
<!-- Purpose: xml -->
<!-- Membership: pecl -->
<reference id="ref.sca">
<title>SCA Functions</title>
<titleabbrev>SCA</titleabbrev>
<partintro>
<section id="SCA.intro">
&reftitle.intro;
<para> SCA for PHP makes it possible for a PHP programmer to write
reusable components, which can be called in a variety of ways, with an
identical interface and with a minimum of fuss. At present
components can call each other either locally or via Web services,
but in the future it is expected that other ways will be possible. It
provides the programmer with a way of doing this which will look as
natural as possible in PHP. </para>
<para> SCA components use phpDocumentor-style (see
http://www.phpdoc.org/) annotations to declare dependencies on
other SCA components or Web services. The SCA for PHP runtime
resolves these dependencies at runtime on behalf of the components,
and thus allows the PHP programmer to focus on the business logic
rather than on locating and obtaining references to dependencies.
</para>
<para> The SCA for PHP programming model can be extended to support a
number of service types, such as REST and Atompub, however, Web
services (more accurately, WSDL defined, SOAP/HTTP services), are
the only type currently specified. </para>
<para> Components also use annotations to define the interface which
they expose as a service. The SCA for PHP runtime will automatically
generate WSDL from these annotations, so that an SCA component is
easily exposed as a web service. These annotations are a natural
extension to those provided by phpDocumentor. Deploying a Web
service can be as simple as placing a PHP component under the document
root of a web server. </para>
<para> Components also use annotations to specify data structures
(expressed using XML schema complex types) which are then handled
using Service Data Objects (SDOs). </para>
<para> A PHP script which is not an SCA component and which contains no
annotations can use the services of an SCA component. A PHP script or
component can make calls to a web service that is not an SCA component,
but using the same system of annotations to obtain a reference.
</para>
</section>
<section id="SCA.intro.glossary">
<title>Glossary</title>
<para>The following terms are used throughout this
document:</para>
<itemizedlist>
<listitem>
<para> Component: the name "component" is used in this document to
refer to an implementation artifact (a PHP script containing a
PHP class) which provides a Service to other components. This is
consistent with the SCA use of the term "component" to describe a
configured instance of an implementation, since the script
contains both the implementation of the business logic,
expressed in PHP code, and the configuration information,
expressed through annotations. </para>
</listitem>
<listitem>
<para> Service: A service is a set of one or more operations made
available for calling by other components. These might be
operations which can be called locally (i.e. PHP script directly
to PHP script), or operations callable remotely via a Web
service. </para>
</listitem>
<listitem>
<para> Service Component: Used as a synonym for Component.
</para>
</listitem>
<listitem>
<para> Web service: Unless stated otherwise, the term Web service
is used to refer to a service described by WSDL and callable via
SOAP/HTTP. </para>
</listitem>
</itemizedlist>
</section>
<section id="SCA.requirements">
&reftitle.required;
<para> If you want to use SCA to consume or produce Web services then
you need PHP 5.2.0 or later, built with the soap extension enabled.
If you just want to use local components, and do not wish to use the Web
service bindings, then this version of SCA for PHP will also run with
PHP 5.1.6. </para>
</section>
<section id="SCA.installation">
&reftitle.install;
<para> See http://www.php.net/sdo#sdo.installation for
installing the SCA_SDO package from PECL. The SCA code must be on the
include path of your PHP installation, for example if it is
installed as /usr/local/lib/php/SCA, the include_path
directive must include /usr/local/lib/php </para>
</section>
<!-- &reference.SCA.constants;-->
</partintro>
<!-- &reference.SCA.functions;-->
</reference>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->