UrlCoder.php 930 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. /**
  3. *
  4. * Copyright © Magento, Inc. All rights reserved.
  5. * See COPYING.txt for license details.
  6. */
  7. namespace Magento\Framework\Encryption;
  8. /**
  9. * @api
  10. * @since 100.0.2
  11. */
  12. class UrlCoder
  13. {
  14. /**
  15. * @var \Magento\Framework\UrlInterface
  16. */
  17. protected $_url;
  18. /**
  19. * @param \Magento\Framework\UrlInterface $url
  20. */
  21. public function __construct(\Magento\Framework\UrlInterface $url)
  22. {
  23. $this->_url = $url;
  24. }
  25. /**
  26. * base64_encode() for URLs encoding
  27. *
  28. * @param string $url
  29. * @return string
  30. */
  31. public function encode($url)
  32. {
  33. return strtr(base64_encode($url), '+/=', '-_,');
  34. }
  35. /**
  36. * base64_decode() for URLs decoding
  37. *
  38. * @param string $url
  39. * @return string
  40. */
  41. public function decode($url)
  42. {
  43. return $this->_url->sessionUrlVar(base64_decode(strtr($url, '-_,', '+/=')));
  44. }
  45. }