FacebookSessionPersistentDataHandler.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. /**
  3. * Copyright 2017 Facebook, Inc.
  4. *
  5. * You are hereby granted a non-exclusive, worldwide, royalty-free license to
  6. * use, copy, modify, and distribute this software in source code or binary
  7. * form for use in connection with the web services and APIs provided by
  8. * Facebook.
  9. *
  10. * As with any software that integrates with the Facebook platform, your use
  11. * of this software is subject to the Facebook Developer Principles and
  12. * Policies [http://developers.facebook.com/policy/]. This copyright notice
  13. * shall be included in all copies or substantial portions of the software.
  14. *
  15. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  16. * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  17. * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
  18. * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  19. * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  20. * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  21. * DEALINGS IN THE SOFTWARE.
  22. *
  23. */
  24. namespace Facebook\PersistentData;
  25. use Facebook\Exceptions\FacebookSDKException;
  26. /**
  27. * Class FacebookSessionPersistentDataHandler
  28. *
  29. * @package Facebook
  30. */
  31. class FacebookSessionPersistentDataHandler implements PersistentDataInterface
  32. {
  33. /**
  34. * @var string Prefix to use for session variables.
  35. */
  36. protected $sessionPrefix = 'FBRLH_';
  37. /**
  38. * Init the session handler.
  39. *
  40. * @param boolean $enableSessionCheck
  41. *
  42. * @throws FacebookSDKException
  43. */
  44. public function __construct($enableSessionCheck = true)
  45. {
  46. if ($enableSessionCheck && session_status() !== PHP_SESSION_ACTIVE) {
  47. throw new FacebookSDKException(
  48. 'Sessions are not active. Please make sure session_start() is at the top of your script.',
  49. 720
  50. );
  51. }
  52. }
  53. /**
  54. * @inheritdoc
  55. */
  56. public function get($key)
  57. {
  58. if (isset($_SESSION[$this->sessionPrefix . $key])) {
  59. return $_SESSION[$this->sessionPrefix . $key];
  60. }
  61. return null;
  62. }
  63. /**
  64. * @inheritdoc
  65. */
  66. public function set($key, $value)
  67. {
  68. $_SESSION[$this->sessionPrefix . $key] = $value;
  69. }
  70. }