ParametersInterface.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. declare(strict_types=1);
  3. namespace Laminas\Stdlib;
  4. use ArrayAccess;
  5. use Countable;
  6. use Serializable;
  7. use Traversable;
  8. /*
  9. * Basically, an ArrayObject. You could simply define something like:
  10. * class QueryParams extends ArrayObject implements Parameters {}
  11. * and have 90% of the functionality
  12. */
  13. interface ParametersInterface extends ArrayAccess, Countable, Serializable, Traversable
  14. {
  15. /**
  16. * Constructor
  17. *
  18. * @param array $values
  19. */
  20. public function __construct(?array $values = null);
  21. /**
  22. * From array
  23. *
  24. * Allow deserialization from standard array
  25. *
  26. * @param array $values
  27. * @return mixed
  28. */
  29. public function fromArray(array $values);
  30. /**
  31. * From string
  32. *
  33. * Allow deserialization from raw body; e.g., for PUT requests
  34. *
  35. * @param string $string
  36. * @return mixed
  37. */
  38. public function fromString($string);
  39. /**
  40. * To array
  41. *
  42. * Allow serialization back to standard array
  43. *
  44. * @return mixed
  45. */
  46. public function toArray();
  47. /**
  48. * To string
  49. *
  50. * Allow serialization to query format; e.g., for PUT or POST requests
  51. *
  52. * @return mixed
  53. */
  54. public function toString();
  55. /**
  56. * Get
  57. *
  58. * @param string $name
  59. * @param mixed|null $default
  60. * @return mixed
  61. */
  62. public function get($name, $default = null);
  63. /**
  64. * Set
  65. *
  66. * @param string $name
  67. * @param mixed $value
  68. * @return ParametersInterface
  69. */
  70. public function set($name, $value);
  71. }