123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Framework\Session;
- use Magento\Framework\Session\Config\ConfigInterface;
- use \Magento\Framework\Exception\SessionException;
- /**
- * Magento session save handler
- */
- class SaveHandler implements SaveHandlerInterface
- {
- /**
- * Session handler
- *
- * @var \SessionHandler
- */
- protected $saveHandlerAdapter;
- /**
- * Constructor
- *
- * @param SaveHandlerFactory $saveHandlerFactory
- * @param ConfigInterface $sessionConfig
- * @param string $default
- */
- public function __construct(
- SaveHandlerFactory $saveHandlerFactory,
- ConfigInterface $sessionConfig,
- $default = self::DEFAULT_HANDLER
- ) {
- /**
- * Session handler
- *
- * Save handler may be set to custom value in deployment config, which will override everything else.
- * Otherwise, try to read PHP settings for session.save_handler value. Otherwise, use 'files' as default.
- */
- $saveMethod = $sessionConfig->getOption('session.save_handler') ?: $default;
- try {
- $this->saveHandlerAdapter = $saveHandlerFactory->create($saveMethod);
- } catch (SessionException $e) {
- $this->saveHandlerAdapter = $saveHandlerFactory->create($default);
- }
- }
- /**
- * Open Session - retrieve resources
- *
- * @param string $savePath
- * @param string $name
- * @return bool
- */
- public function open($savePath, $name)
- {
- return $this->saveHandlerAdapter->open($savePath, $name);
- }
- /**
- * Close Session - free resources
- *
- * @return bool
- */
- public function close()
- {
- return $this->saveHandlerAdapter->close();
- }
- /**
- * Read session data
- *
- * @param string $sessionId
- * @return string
- */
- public function read($sessionId)
- {
- return $this->saveHandlerAdapter->read($sessionId);
- }
- /**
- * Write Session - commit data to resource
- *
- * @param string $sessionId
- * @param string $data
- * @return bool
- */
- public function write($sessionId, $data)
- {
- return $this->saveHandlerAdapter->write($sessionId, $data);
- }
- /**
- * Destroy Session - remove data from resource for given session id
- *
- * @param string $sessionId
- * @return bool
- */
- public function destroy($sessionId)
- {
- return $this->saveHandlerAdapter->destroy($sessionId);
- }
- /**
- * Garbage Collection - remove old session data older
- * than $maxLifetime (in seconds)
- *
- * @param int $maxLifetime
- * @return bool
- * @SuppressWarnings(PHPMD.ShortMethodName)
- */
- public function gc($maxLifetime)
- {
- return $this->saveHandlerAdapter->gc($maxLifetime);
- }
- }
|