использование веб-службы в Synfony 2

1

У меня есть веб-сервис, разработанный с помощью 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-friendly)

примечание редактора: английский не мой родной язык, поэтому, пожалуйста, не обвиняйте меня, я старался изо всех сил сделать эту тему понятной

Я буду благодарен за любую помощь, которую вы можете предоставить.

Теги:
web-services
wsdl

1 ответ

0
Лучший ответ

В любое время, когда вам нужно использовать класс более, чем один раз в приложении, вам необходимо определить его как службу. Служба - это php-объект, который выполняет какую-то глобальную задачу. Одна интересная вещь об услугах - это то, что вы можете вводить в них другие сервисы, используя процесс под названием "Инъекция". Я знаю, что вы беспокоитесь о гибкости вашего кода. Я обещаю, что такой тип инъекций предлагает экстремальную гибкость. Если вы обнаружите, что это недостаточно гибко для вас, то у Symfony есть что-то, называемое фабрикой, которая предлагает еще большую гибкость. Проверьте это... http://symfony.com/doc/current/components/dependency_injection/factories.html

  • 0
    Спасибо, вы знаете, если я вынужден создать Фабрику?
  • 0
    Если вы хотите, чтобы ваш класс был доступен по всему приложению, и вы не думаете, что обычные сервисы Symfony предлагают достаточную гибкость, тогда да, я бы создал фабрику. Есть ли что-то конкретное, что вы пытаетесь достичь, что, по вашему мнению, вы не можете с помощью услуг Symfony?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню