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