LazyObject.php 1023 B

12345678910111213141516171819202122232425262728293031323334
  1. <?php
  2. /**
  3. * @package Grav\Framework\Object
  4. *
  5. * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved.
  6. * @license MIT License; see LICENSE file for details.
  7. */
  8. namespace Grav\Framework\Object;
  9. use ArrayAccess;
  10. use Grav\Framework\Object\Access\NestedArrayAccessTrait;
  11. use Grav\Framework\Object\Access\NestedPropertyTrait;
  12. use Grav\Framework\Object\Access\OverloadedPropertyTrait;
  13. use Grav\Framework\Object\Base\ObjectTrait;
  14. use Grav\Framework\Object\Interfaces\NestedObjectInterface;
  15. use Grav\Framework\Object\Property\LazyPropertyTrait;
  16. /**
  17. * Lazy Objects keep their data in both protected object properties and falls back to a stored array if property does
  18. * not exist or is not initialized.
  19. *
  20. * @package Grav\Framework\Object
  21. * @implements ArrayAccess<string,mixed>
  22. */
  23. class LazyObject implements NestedObjectInterface, ArrayAccess
  24. {
  25. use ObjectTrait;
  26. use LazyPropertyTrait;
  27. use NestedPropertyTrait;
  28. use OverloadedPropertyTrait;
  29. use NestedArrayAccessTrait;
  30. }