Webservice.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. namespace WebserviceBundle\Services;
  3. class Webservice
  4. {
  5. /**
  6. * @var ServiceContainer
  7. */
  8. protected $serviceContainer;
  9. /**
  10. * @param ServiceContainer $serviceContainer
  11. */
  12. public function __construct($serviceContainer)
  13. {
  14. $this->serviceContainer = $serviceContainer;
  15. }
  16. /**
  17. * @param string $webservice
  18. * @param array $params
  19. * @return array
  20. */
  21. public function getChoices($webservice, $params = array())
  22. {
  23. $choices = array();
  24. $objectsJson = $this->getArray($webservice, $params);
  25. foreach ($objectsJson as $object) {
  26. $choices[$object['name']] = $object['id'];
  27. }
  28. return $choices;
  29. }
  30. /**
  31. * @param string $webservice
  32. * @param array $params
  33. * @return array
  34. */
  35. public function getArray($webservice, $params = array())
  36. {
  37. $objectsJson = array();
  38. if ($this->serviceContainer->hasParameter($webservice)) {
  39. $url = $this->serviceContainer->getParameter($webservice);
  40. $url .= '?filters[qb-criteria]';
  41. foreach ($params as $param => $value) {
  42. $url .= "&filters[{$param}]=$value";
  43. }
  44. $objectsJson = json_decode(file_get_contents($url), true);
  45. }
  46. return $objectsJson;
  47. }
  48. }