ParametersInterface.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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. * @template TKey
  14. * @template TValue
  15. * @template-extends ArrayAccess<TKey, TValue>
  16. * @template-extends Traversable<TKey, TValue>
  17. */
  18. interface ParametersInterface extends ArrayAccess, Countable, Serializable, Traversable
  19. {
  20. /**
  21. * Constructor
  22. *
  23. * @param array<TKey, TValue>|null $values
  24. */
  25. public function __construct(?array $values = null);
  26. /**
  27. * From array
  28. *
  29. * Allow deserialization from standard array
  30. *
  31. * @param array<TKey, TValue> $values
  32. * @return mixed
  33. */
  34. public function fromArray(array $values);
  35. /**
  36. * From string
  37. *
  38. * Allow deserialization from raw body; e.g., for PUT requests
  39. *
  40. * @param string $string
  41. * @return mixed
  42. */
  43. public function fromString($string);
  44. /**
  45. * To array
  46. *
  47. * Allow serialization back to standard array
  48. *
  49. * @return array<TKey, TValue>
  50. */
  51. public function toArray();
  52. /**
  53. * To string
  54. *
  55. * Allow serialization to query format; e.g., for PUT or POST requests
  56. *
  57. * @return string
  58. */
  59. public function toString();
  60. /**
  61. * @param TKey $name
  62. * @param TValue|null $default
  63. * @return mixed
  64. */
  65. public function get($name, $default = null);
  66. /**
  67. * @param TKey $name
  68. * @param TValue $value
  69. * @return ParametersInterface
  70. */
  71. public function set($name, $value);
  72. }