Skip to content

Instantly share code, notes, and snippets.

@aeneasr
Created February 23, 2014 15:59
Show Gist options
  • Save aeneasr/9173194 to your computer and use it in GitHub Desktop.
Save aeneasr/9173194 to your computer and use it in GitHub Desktop.
public function onBootstrap(MvcEvent $e)
{
/* @var $sessionManager SessionManager */
$serviceLocator = $e->getApplication()->getServiceManager();
$sessionManager = $serviceLocator->get('Zend\Session\SessionManager');
$sessionManager->setSaveHandler($serviceLocator->get('Zend\Session\SaveHandler\SaveHandlerInterface'));
}
---------
namespace Session;
return [
'service_manager' => [
'factories' => [
'Zend\Session\SaveHandler\SaveHandlerInterface' => __NAMESPACE__ . '\Factory\SaveHandlerFactory'
]
]
];
-------------
namespace Session\Factory;
use Zend\Db\Adapter\Adapter;
use Zend\Db\TableGateway\TableGateway;
use Zend\ServiceManager\ServiceLocatorInterface;
use Zend\ServiceManager\FactoryInterface;
use Zend\Session\SaveHandler\DbTableGateway;
use Zend\Session\SaveHandler\DbTableGatewayOptions;
use Zend\Stdlib\ArrayUtils;
class SaveHandlerFactory implements FactoryInterface
{
/**
* Create service
*
* @param ServiceLocatorInterface $serviceLocator
* @return mixed
*/
public function createService(ServiceLocatorInterface $serviceLocator)
{
$config = ArrayUtils::merge(['driver' => 'mysqli'], $serviceLocator->get('config')['dbParams']);
$adapter = new Adapter($config);
$tableGateway = new TableGateway('session', $adapter);
$saveHandler = new DbTableGateway($tableGateway, new DbTableGatewayOptions());
return $saveHandler;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment