DataPersistor.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\App\Request;
  7. use Magento\Framework\Api\SimpleDataObjectConverter;
  8. use Magento\Framework\Session\SessionManagerInterface;
  9. /**
  10. * Persist data to session.
  11. */
  12. class DataPersistor implements DataPersistorInterface
  13. {
  14. /**
  15. * @var SessionManagerInterface
  16. */
  17. protected $session;
  18. /**
  19. * @param SessionManagerInterface $session
  20. */
  21. public function __construct(
  22. SessionManagerInterface $session
  23. ) {
  24. $this->session = $session;
  25. }
  26. /**
  27. * Store data by key
  28. *
  29. * @param string $key
  30. * @param mixed $data
  31. * @return void
  32. */
  33. public function set($key, $data)
  34. {
  35. $method = 'set' . SimpleDataObjectConverter::snakeCaseToUpperCamelCase($key) . 'Data';
  36. call_user_func_array([$this->session, $method], [$data]);
  37. }
  38. /**
  39. * Retrieve data by key
  40. *
  41. * @param string $key
  42. * @return mixed
  43. */
  44. public function get($key)
  45. {
  46. $method = 'get' . SimpleDataObjectConverter::snakeCaseToUpperCamelCase($key) . 'Data';
  47. return call_user_func_array([$this->session, $method], []);
  48. }
  49. /**
  50. * Clear data by key
  51. *
  52. * @param string $key
  53. * @return void
  54. */
  55. public function clear($key)
  56. {
  57. $method = 'uns' . SimpleDataObjectConverter::snakeCaseToUpperCamelCase($key) . 'Data';
  58. call_user_func_array([$this->session, $method], []);
  59. }
  60. }