src/SymfonyDev/SoapBundle/Controller/SoapController.php line 16

Open in your IDE?
  1. <?php
  2. namespace SymfonyDev\SoapBundle\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  4. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\HttpFoundation\Response;
  7. class SoapController extends Controller
  8. {
  9.     /**
  10.      * @Route("/", name="app_red")
  11.      * @Route("/login", name="app_red2")
  12.      */
  13.     public function redAction(Request $request)
  14.     {
  15.         return $this->redirect($this->generateUrl('app_security_login'));
  16.     }
  17.     
  18.     /**
  19.      * @Route("/soap_api", name="soap")
  20.      */
  21.     public function indexAction(Request $request)
  22.     {
  23.         ini_set("soap.wsdl_cache_enabled"0);
  24.         //libxml_disable_entity_loader(true);
  25.         $object $this->get('soap_api');
  26.         $object->setRegistry($this->getDoctrine());
  27.         $object->setContainer($this->container);
  28.         $server = new \Zend\Soap\Server($request->getUriForPath('/soap_api/wsdl'));
  29.         $server->setObject($object);
  30.         $server->setClass(get_class($object));
  31.         $server->setReturnResponse(true);
  32.         $response = new Response();
  33.         $response->headers->set('Content-Type''text/xml;');
  34.         $response->setContent($server->handle());
  35.         return $response;
  36.     }
  37.     
  38.     /**
  39.      * @Route("/soap_api/wsdl", name="soap_wsdl")
  40.      */
  41.     public function wsdlAction(Request $request)
  42.     {
  43.         $strategy = new \Zend\Soap\Wsdl\ComplexTypeStrategy\ArrayOfTypeComplex();
  44.         $autodiscover = new \Zend\Soap\AutoDiscover($strategy);
  45.         $autodiscover->setUri($request->getUriForPath('/soap_api'));
  46.         $autodiscover->setClass(get_class($this->get('soap_api')));
  47.         return new Response($autodiscover->generate()->toXml(), 200, array('Content-type' => 'text/xml'));
  48.     }
  49. }