Allows session to be started by PHP and managed by Symfony2
@author Drak <drak@zikula.org>
Expanded class hierarchy of PhpBridgeSessionStorage
class PhpBridgeSessionStorage extends NativeSessionStorage {
/**
* Constructor.
*
* @param AbstractProxy|NativeSessionHandler|\SessionHandlerInterface|null $handler
* @param MetadataBag $metaBag MetadataBag
*/
public function __construct($handler = null, MetadataBag $metaBag = null) {
$this
->setMetadataBag($metaBag);
$this
->setSaveHandler($handler);
}
/**
* {@inheritdoc}
*/
public function start() {
if ($this->started && !$this->closed) {
return true;
}
$this
->loadSession();
if (!$this->saveHandler
->isWrapper() && !$this->saveHandler
->isSessionHandlerInterface()) {
// This condition matches only PHP 5.3 + internal save handlers
$this->saveHandler
->setActive(true);
}
return true;
}
/**
* {@inheritdoc}
*/
public function clear() {
// clear out the bags and nothing else that may be set
// since the purpose of this driver is to share a handler
foreach ($this->bags as $bag) {
$bag
->clear();
}
// reconnect the bags to the session
$this
->loadSession();
}
}