CookieScope.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\Stdlib\Cookie;
  7. /**
  8. * CookieScope is used to store default scope metadata.
  9. */
  10. class CookieScope implements CookieScopeInterface
  11. {
  12. /**
  13. * @var SensitiveCookieMetadata
  14. */
  15. private $sensitiveCookieMetadata;
  16. /**
  17. * @var PublicCookieMetadata
  18. */
  19. private $publicCookieMetadata;
  20. /**
  21. * @var CookieMetadata
  22. */
  23. private $cookieMetadata;
  24. /**
  25. * @var CookieMetadataFactory
  26. */
  27. private $cookieMetadataFactory;
  28. /**
  29. * @param CookieMetadataFactory $cookieMetadataFactory
  30. * @param SensitiveCookieMetadata $sensitiveCookieMetadata
  31. * @param PublicCookieMetadata $publicCookieMetadata
  32. * @param CookieMetadata $deleteCookieMetadata
  33. */
  34. public function __construct(
  35. CookieMetadataFactory $cookieMetadataFactory,
  36. SensitiveCookieMetadata $sensitiveCookieMetadata = null,
  37. PublicCookieMetadata $publicCookieMetadata = null,
  38. CookieMetadata $deleteCookieMetadata = null
  39. ) {
  40. $this->cookieMetadataFactory = $cookieMetadataFactory;
  41. $this->sensitiveCookieMetadata = $sensitiveCookieMetadata;
  42. $this->publicCookieMetadata = $publicCookieMetadata;
  43. $this->cookieMetadata = $deleteCookieMetadata;
  44. }
  45. /**
  46. * Merges the input override metadata with any defaults set on this Scope, and then returns a CookieMetadata
  47. * object representing the merged values.
  48. *
  49. * @param SensitiveCookieMetadata|null $override
  50. * @return SensitiveCookieMetadata
  51. */
  52. public function getSensitiveCookieMetadata(SensitiveCookieMetadata $override = null)
  53. {
  54. if ($this->sensitiveCookieMetadata !== null) {
  55. $merged = $this->sensitiveCookieMetadata->__toArray();
  56. } else {
  57. $merged = [];
  58. }
  59. if ($override !== null) {
  60. $merged = array_merge($merged, $override->__toArray());
  61. }
  62. return $this->cookieMetadataFactory->createSensitiveCookieMetadata($merged);
  63. }
  64. /**
  65. * Merges the input override metadata with any defaults set on this Scope, and then returns a CookieMetadata
  66. * object representing the merged values.
  67. *
  68. * @param PublicCookieMetadata|null $override
  69. * @return PublicCookieMetadata
  70. */
  71. public function getPublicCookieMetadata(PublicCookieMetadata $override = null)
  72. {
  73. if ($this->publicCookieMetadata !== null) {
  74. $merged = $this->publicCookieMetadata->__toArray();
  75. } else {
  76. $merged = [];
  77. }
  78. if ($override !== null) {
  79. $merged = array_merge($merged, $override->__toArray());
  80. }
  81. return $this->cookieMetadataFactory->createPublicCookieMetadata($merged);
  82. }
  83. /**
  84. * Merges the input override metadata with any defaults set on this Scope, and then returns a CookieMetadata
  85. * object representing the merged values.
  86. *
  87. * @param CookieMetadata|null $override
  88. * @return CookieMetadata
  89. */
  90. public function getCookieMetadata(CookieMetadata $override = null)
  91. {
  92. if ($this->cookieMetadata !== null) {
  93. $merged = $this->cookieMetadata->__toArray();
  94. } else {
  95. $merged = [];
  96. }
  97. if ($override !== null) {
  98. $merged = array_merge($merged, $override->__toArray());
  99. }
  100. return $this->cookieMetadataFactory->createCookieMetadata($merged);
  101. }
  102. }