Merge remote-tracking branch 'origin/client'

This commit is contained in:
Francis Besset
2011-11-13 22:42:51 +01:00
30 changed files with 488 additions and 353 deletions

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<parameters>
<parameter key="besimple.soap.client.builder.class">BeSimple\SoapBundle\Soap\SoapClientBuilder</parameter>
<parameter key="besimple.soap.classmap.class">BeSimple\SoapCommon\Classmap</parameter>
</parameters>
<services>
<service id="besimple.soap.client.builder" class="%besimple.soap.client.builder.class%" abstract="true">
<argument /> <!-- wsdl URI -->
<argument type="collection">
<argument key="debug">%kernel.debug%</argument>
</argument>
<argument type="service" id="besimple.soap.classmap" />
<argument type="service" id="besimple.soap.converter.collection" />
<argument type="service" id="besimple.soap.cache" />
</service>
<service id="besimple.soap.client" factory-service="besimple.soap.client.builder" factory-method="build" class="%besimple.soap.client.builder.class%" abstract="true" />
<service id="besimple.soap.classmap" class="%besimple.soap.classmap.class%" abstract="true" />
</services>
</container>

View File

@ -5,13 +5,13 @@
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<parameters>
<parameter key="besimple.soap.converter.repository.class">BeSimple\SoapBundle\Converter\ConverterRepository</parameter>
<parameter key="besimple.soap.converter.date_time.class">BeSimple\SoapBundle\Converter\DateTimeTypeConverter</parameter>
<parameter key="besimple.soap.converter.date.class">BeSimple\SoapBundle\Converter\DateTypeConverter</parameter>
<parameter key="besimple.soap.converter.collection.class">BeSimple\SoapCommon\Converter\TypeConverterCollection</parameter>
<parameter key="besimple.soap.converter.date_time.class">BeSimple\SoapCommon\Converter\DateTimeTypeConverter</parameter>
<parameter key="besimple.soap.converter.date.class">BeSimple\SoapCommon\Converter\DateTypeConverter</parameter>
</parameters>
<services>
<service id="besimple.soap.converter.repository" class="%besimple.soap.converter.repository.class%" />
<service id="besimple.soap.converter.collection" class="%besimple.soap.converter.collection.class%" />
<service id="besimple.soap.converter.date_time" class="%besimple.soap.converter.date_time.class%" public="false">
<tag name="besimple.soap.converter" />

21
Resources/config/soap.xml Normal file
View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<parameters>
<parameter key="besimple.soap.cache.class">BeSimple\SoapBundle\Cache</parameter>
<parameter key="besimple.soap.cache.directory">%kernel.cache_dir%/besimple/soap</parameter>
</parameters>
<services>
<service id="besimple.soap.cache" class="%besimple.soap.cache.class%">
<argument>%kernel.debug%</argument>
<argument>%besimple.soap.cache.type%</argument>
<argument>%besimple.soap.cache.directory%</argument>
<argument>%besimple.soap.cache.lifetime%</argument>
<argument>%besimple.soap.cache.limit%</argument>
</service>
</services>
</container>

View File

@ -15,6 +15,7 @@
<parameter key="besimple.soap.binder.response.documentwrapped.class">BeSimple\SoapBundle\ServiceBinding\DocumentLiteralWrappedResponseMessageBinder</parameter>
<parameter key="besimple.soap.definition.dumper.wsdl.rpcliteral.class">BeSimple\SoapBundle\ServiceDefinition\Dumper\WsdlDumper</parameter>
<parameter key="besimple.soap.type.repository.class">BeSimple\SoapBundle\Converter\TypeRepository</parameter>
<parameter key="besimple.soap.server.classmap.class">BeSimple\SoapCommon\Classmap</parameter>
</parameters>
<services>
@ -23,39 +24,48 @@
<service id="besimple.soap.context.rpcliteral" class="%besimple.soap.context.class%" abstract="true">
<argument type="service" id="besimple.soap.definition.loader" />
<argument type="service" id="besimple.soap.definition.dumper.wsdl.rpcliteral" />
<argument type="service" id="besimple.soap.server.classmap" />
<argument type="service" id="besimple.soap.type.repository" />
<argument type="service" id="besimple.soap.converter.repository" />
<argument type="service" id="besimple.soap.converter.collection" />
<argument type="collection">
<argument key="cache_dir">%besimple.soap.cache_dir%</argument>
<argument key="debug">%kernel.debug%</argument>
<argument key="cache_type">null</argument>
<argument key="binder_request_header_class">%besimple.soap.binder.request_header.rpcliteral.class%</argument>
<argument key="binder_request_class">%besimple.soap.binder.request.rpcliteral.class%</argument>
<argument key="binder_response_class">%besimple.soap.binder.response.rpcliteral.class%</argument>
</argument>
<argument type="service" id="besimple.soap.cache" />
</service>
<service id="besimple.soap.context.documentwrapped" class="%besimple.soap.context.class%" abstract="true">
<argument type="service" id="besimple.soap.definition.loader" />
<argument type="service" id="besimple.soap.definition.dumper.wsdl.documentwrapped" />
<argument type="service" id="besimple.soap.server.classmap" />
<argument type="service" id="besimple.soap.type.repository" />
<argument type="service" id="besimple.soap.converter.repository" />
<argument type="service" id="besimple.soap.converter.collection" />
<argument type="collection">
<argument key="cache_dir">%besimple.soap.cache_dir%</argument>
<argument key="debug">%kernel.debug%</argument>
<argument key="cache_type">null</argument>
<argument key="binder_request_header_class">%besimple.soap.binder.request_header.documentwrapped.class%</argument>
<argument key="binder_request_class">%besimple.soap.binder.request.documentwrapped.class%</argument>
<argument key="binder_response_class">%besimple.soap.binder.response.documentwrapped.class%</argument>
</argument>
<argument type="service" id="besimple.soap.cache" />
</service>
<service id="besimple.soap.definition.dumper.wsdl.rpcliteral" class="%besimple.soap.definition.dumper.wsdl.rpcliteral.class%">
<argument type="service" id="besimple.soap.definition.loader.annot_complextype" />
<argument type="service" id="besimple.soap.server.classmap" />
<argument type="service" id="besimple.soap.type.repository" />
<argument type="collection">
<argument key="stylesheet">%besimple.soap.definition.dumper.options.stylesheet%</argument>
</argument>
</service>
<service id="besimple.soap.server.classmap" class="%besimple.soap.server.classmap.class%" public="false" />
<service id="besimple.soap.type.repository" class="%besimple.soap.type.repository.class%">
<call method="addXmlNamespace">
<argument>xsd</argument>

26
Resources/doc/cache.rst Normal file
View File

@ -0,0 +1,26 @@
Cache
=====
Configuration
-------------
Configure the cache of PHP Soap WSDL in your config file:
.. code-block:: yaml
# app/config/config.yml
be_simple_soap:
cache:
type: disk
lifetime: 86400
limit: 5
The cache type can be: **none**, **disk** (default value), **memory**, **disk_memory**.
The lifetime in seconds of a WSDL file in the cache (**86400 is the default value by PHP**).
The limit is the maximum number of in-memory cached WSDL files (**5 is the default value by PHP**).
If you want more information you can visit the following page `PHP Soap runtime configuration`_.
.. _`PHP Soap runtime configuration`: http://www.php.net/manual/en/soap.configuration.php

View File

@ -1,9 +1,11 @@
==================
BeSimpleSoapBundle
==================
The BeSimpleSoapBundle is a Symfony2 bundle to build WSDL and SOAP based web services.
It is based on the `ckWebServicePlugin`_ for symfony.
---------------
Reference Guide
---------------
@ -11,19 +13,25 @@ Reference Guide
:maxdepth: 1
:numbered:
reference/installation
reference/configuration
reference/types
installation
cache
Tutorial
--------
----------
SoapServer
----------
.. toctree::
:maxdepth: 1
:numbered:
tutorial/array
tutorial/complex_type
tutorial/header
soapserver/configuration
soapserver/types
soapserver/tutorials
----------
SoapClient
----------
Coming soon.
.. _`ckWebServicePlugin`: http://www.symfony-project.org/plugins/ckWebServicePlugin

View File

@ -4,8 +4,39 @@ Installation
Requirements
------------
Install and enable PHP's SOAP extension
Download `Zend\\Soap`_ and `Zend\\Mime`_ or add in `deps` file
Install and enable PHP's SOAP extension.
Download `BeSimple\\SoapCommon`_ and `BeSimple\\SoapServer`_ (only for the server part) and/or `BeSimple\\SoapClient`_ (only for ther client part).
.. code-block:: ini
; deps file
[BeSimple\SoapCommon]
git=http://github.com/BeSimple/SoapCommon
target=/besimple-soapcommon
[BeSimple\SoapClient]
git=http://github.com/BeSimple/SoapClient
target=/besimple-soapclient
[BeSimple\SoapServer]
git=http://github.com/BeSimple/SoapServer
target=/besimple-soapserver
Add `BeSimple` libraries in autoload.php
.. code-block:: php
// app/autoload.php
$loader->registerNamespaces(array(
'BeSimple\\SoapCommon' => __DIR__.'/../vendor/besimple-soapcommon',
'BeSimple\\SoapServer' => __DIR__.'/../vendor/besimple-soapserver',
'BeSimple\\SoapClient' => __DIR__.'/../vendor/besimple-soapclient',
// your other namespaces
));
Download `Zend\\Soap`_ and `Zend\\Mime`_ or add in `deps` file. `Zend` library is required only for the server part.
.. code-block:: ini
@ -67,4 +98,7 @@ Add `BeSimpleSoapBundle` in your Kernel class
.. _`Zend\\Soap`: http://github.com/BeSimple/zend-soap
.. _`Zend\\Mime`: http://github.com/BeSimple/zend-mime
.. _`BeSimple\\SoapCommon`: http://github.com/BeSimple/BeSimpleSoapCommon
.. _`BeSimple\\SoapServer`: http://github.com/BeSimple/BeSimpleSoapServer
.. _`BeSimple\\SoapClient`: http://github.com/BeSimple/BeSimpleSoapClient
.. _`Download`: http://github.com/BeSimple/BeSimpleSoapBundle

View File

@ -50,4 +50,9 @@ Annotations for Controllers
{
return $this->container->get('besimple.soap.response')->setReturnValue(sprintf('Hello %s!', $name));
}
}
}
Get your WSDL
-------------
To access your WSDL go to the following address: http://localhost/app_dev.php/ws/DemoApi?wsdl

View File

@ -0,0 +1,9 @@
Tutorials
=========
.. toctree::
:maxdepth: 1
tutorial/array
tutorial/complex_type
tutorial/header