ContentBlockInterface.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?php
  2. /**
  3. * @package Grav\Framework\ContentBlock
  4. *
  5. * @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
  6. * @license MIT License; see LICENSE file for details.
  7. */
  8. namespace Grav\Framework\ContentBlock;
  9. /**
  10. * ContentBlock Interface
  11. * @package Grav\Framework\ContentBlock
  12. */
  13. interface ContentBlockInterface extends \Serializable
  14. {
  15. /**
  16. * @param string $id
  17. * @return static
  18. */
  19. public static function create($id = null);
  20. /**
  21. * @param array $serialized
  22. * @return ContentBlockInterface
  23. */
  24. public static function fromArray(array $serialized);
  25. /**
  26. * @param string $id
  27. */
  28. public function __construct($id = null);
  29. /**
  30. * @return string
  31. */
  32. public function getId();
  33. /**
  34. * @return string
  35. */
  36. public function getToken();
  37. /**
  38. * @return array
  39. */
  40. public function toArray();
  41. /**
  42. * @return string
  43. */
  44. public function toString();
  45. /**
  46. * @return string
  47. */
  48. public function __toString();
  49. /**
  50. * @param array $serialized
  51. */
  52. public function build(array $serialized);
  53. /**
  54. * @param string $checksum
  55. * @return $this
  56. */
  57. public function setChecksum($checksum);
  58. /**
  59. * @return string
  60. */
  61. public function getChecksum();
  62. /**
  63. * @param string $content
  64. * @return $this
  65. */
  66. public function setContent($content);
  67. /**
  68. * @param ContentBlockInterface $block
  69. * @return $this
  70. */
  71. public function addBlock(ContentBlockInterface $block);
  72. }