Go to file
2011-07-14 17:43:37 +02:00
Controller some small fixes to get it working 2011-04-09 00:43:47 +02:00
Converter disabled ConverterRepository::registerTypeConverterServices(), has to be replaced with a compiler pass; 2011-04-08 00:42:20 +02:00
DependencyInjection fixed typo 2011-04-09 00:37:50 +02:00
Resources added annotation support 2011-04-09 00:40:31 +02:00
ServiceBinding refactored code to better separate responsibilities 2011-02-03 01:07:08 +01:00
ServiceDefinition added annotation support 2011-04-09 00:40:31 +02:00
Soap some small fixes to get it working 2011-04-09 00:43:47 +02:00
Tests Added scripts to run phpunit tests 2011-07-14 17:43:37 +02:00
Util refactored code to better separate responsibilities 2011-02-03 01:07:08 +01:00
.gitignore Added scripts to run phpunit tests 2011-07-14 17:43:37 +02:00
phpunit.xml.dist Added scripts to run phpunit tests 2011-07-14 17:43:37 +02:00
README.markdown added annotation support 2011-04-09 00:40:31 +02:00
vendors.php Added scripts to run phpunit tests 2011-07-14 17:43:37 +02:00
WebServiceBundle.php implemented basic SoapKernel to transform a SoapRequest to a SoapResponse 2010-10-05 21:44:30 +02:00
WebServiceContext.php wsdl definition can now be retrieved; aligned controller method and route naming; 2011-04-08 00:46:58 +02:00

WebServiceBundle

The WebServiceBundle is a Symfony2 bundle to build WSDL and SOAP based web services. It is based on the [ckWebServicePlugin] 1 for symfony.

Requirements

  • Install and enable PHP's SOAP extension
  • Download and add Zend\Soap library to app/autoload.php

QuickStart

  • Put WebServiceBundle in your src/Bundle dir

  • Enable WebServiceBundle in your app/AppKernel.php

  • Include the WebServiceBundle's routing configuration in app/config/routing.yml (you can choose the prefix arbitrarily)

    _ws:
        resource: "@WebServiceBundle/Resources/config/routing/webservicecontroller.xml"
        prefix:   /ws
    
  • Configure your first web service in app/config/config.yml

    web_service:
        services:
            demoapi:
                name:          DemoApi
                namespace:     http://mysymfonyapp.com/ws/DemoApi/1.0/                  
                binding:       rpc-literal
                resource:      "@AcmeDemoBundle/Controller/DemoController.php"
                resource_type: annotation
    
  • Annotate your controller methods

    // src/Acme/DemoBundle/Controller/DemoController.php
    /**
     * @ws:Method("Hello")
     * @ws:Param("name", type = "string")
     * @ws:Result(type = "string")
     */
    public function helloAction($name)
    {
        return new SoapResponse(sprintf('Hello %s!', $name));
    }
    
  • Open your web service endpoint

    • http://localhost/app_dev.php/ws/DemoApi - HTML documentation
    • http://localhost/app_dev.php/ws/DemoApi?WSDL - WSDL file

Test

phpunit -c myapp src/Bundle/WebServiceBundle