IProperties.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. declare(strict_types=1);
  3. namespace Sabre\DAV;
  4. /**
  5. * IProperties interface.
  6. *
  7. * Implement this interface to support custom WebDAV properties requested and sent from clients.
  8. *
  9. * @copyright Copyright (C) fruux GmbH (https://fruux.com/)
  10. * @author Evert Pot (http://evertpot.com/)
  11. * @license http://sabre.io/license/ Modified BSD License
  12. */
  13. interface IProperties extends INode
  14. {
  15. /**
  16. * Updates properties on this node.
  17. *
  18. * This method received a PropPatch object, which contains all the
  19. * information about the update.
  20. *
  21. * To update specific properties, call the 'handle' method on this object.
  22. * Read the PropPatch documentation for more information.
  23. */
  24. public function propPatch(PropPatch $propPatch);
  25. /**
  26. * Returns a list of properties for this nodes.
  27. *
  28. * The properties list is a list of propertynames the client requested,
  29. * encoded in clark-notation {xmlnamespace}tagname
  30. *
  31. * If the array is empty, it means 'all properties' were requested.
  32. *
  33. * Note that it's fine to liberally give properties back, instead of
  34. * conforming to the list of requested properties.
  35. * The Server class will filter out the extra.
  36. *
  37. * @param array $properties
  38. *
  39. * @return array
  40. */
  41. public function getProperties($properties);
  42. }