在 Symfony 2 中使用网络服务

consuming a web service in Synfony 2

我有一个用 webdev 开发的网络服务,我想用 Symfony 2 使用它。

这个时候,我追求纯PHP。我尝试将对象定义为 类,就像它们在 wsdl 中描述的那样(这将允许我直接创建对象的实例)。 例子:

class my_complex_type{

    public $my_basic_type1 = null ; 
    public $my_basic_type2 = null ; 
    public $my_basic_type3 = null ;

    public function __construct($my_basic_type1, $my_basic_type2, $my_basic_type3){
      $this->my_basic_type1 = $my_basic_type1 ;
      $this->my_basic_type1 = $my_basic_type1 ;
      $this->my_basic_type1 = $my_basic_type1 ;
    }

 // setters and getters ...
}

并使用 :

调用函数
public function my_function(my_type $parameters)
    {
      return $this->__soapCall('my_function', array($parameters));
    }

我在使用这种方法时遇到的问题是,我认为这并没有使代码像它应该的那样灵活,而且重新编码已经写在 wsdl 中的东西非常烦人。

所以我想知道您是否有任何更方便的选项(并且可能对 Symfony 更友好)

编者注:英语不是我的母语所以请不要怪我,我尽力让这个话题易于理解

如果您能提供任何帮助,我将不胜感激。

任何时候您需要在应用程序中多次使用 class 然后一次,您需要将其定义为服务。服务是执行某种类型的全局任务的 php 对象。关于服务的一件很酷的事情是,您可以使用称为注入的过程将其他服务注入到它们中。我知道您担心代码的灵活性。我保证这种类型的注射提供了极大的灵活性。如果你发现这对你来说不够灵活,那么 symfony 有一个叫做工厂的东西,它提供了更多的灵活性。看看....http://symfony.com/doc/current/components/dependency_injection/factories.html