DescribeService.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. /**
  3. * The DescribeService is used to provide a description of the class
  4. * to the service browser
  5. *
  6. * This file was adapted from the old RemotingService which was a pretty
  7. * nasty idea all along
  8. *
  9. * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  10. * @copyright (c) 2003 amfphp.org
  11. * @package flashservices
  12. * @subpackage util
  13. * @version $Id: DescribeService.php,v 1.1 2005/04/02 18:41:49 pmineault Exp $
  14. */
  15. class DescribeService
  16. {
  17. /**
  18. * Describes the service
  19. */
  20. function describe(&$service, $name)
  21. {
  22. $description = array();
  23. $description["version"] = "1.0";
  24. $description["address"] = $name;
  25. $description["functions"] = array();
  26. foreach ($service->methodTable as $key => $value) {
  27. if ($value["access"] = "remote") {
  28. $args = array();
  29. if(is_array($value["arguments"]) && count($value["arguments"]) >= 1)
  30. {
  31. foreach($value["arguments"] as $key2 => $arg)
  32. {
  33. if(is_array($arg))
  34. {
  35. $args[] = array("name" => $key2,
  36. "required" => $arg['required'] ? 'true' : 'false',
  37. "type" => $arg['type'],
  38. "description" => $arg['description']
  39. );
  40. }
  41. else
  42. {
  43. $args[] = array("name" => $arg,
  44. "required" => "true",
  45. "type" => "undefined");
  46. }
  47. }
  48. }
  49. if( !isset( $value["returns"] ) )
  50. {
  51. $returns = 'undefined';
  52. }
  53. else
  54. {
  55. $returns = $value["returns"];
  56. }
  57. $description["functions"][] = array(
  58. "description" => $value["description"],
  59. "name" => $key,
  60. "version" => "1.0",
  61. "returns" => $returns,
  62. "arguments" => $args
  63. );
  64. }
  65. }
  66. return $description;
  67. }
  68. }
  69. ?>