-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathModule.php
More file actions
93 lines (78 loc) · 3.21 KB
/
Copy pathModule.php
File metadata and controls
93 lines (78 loc) · 3.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<?php
namespace G403SessionDb;
use Zend\Session\Config\SessionConfig;
use Zend\Session\SaveHandler;
use Zend\Session\SessionManager;
use Zend\Session\Container;
use Zend\Db\TableGateway\TableGateway;
class Module
{
public function onBootstrap(\Zend\EventManager\EventInterface $e)
{
$sm = $e->getApplication()->getServiceManager();
$sessionManager = $sm->get('session_save_manager');
Container::setDefaultManager($sessionManager);
$sessionManager->start();
}
public function getServiceConfig() {
return array(
'factories' => array(
'session_table' => function ($serviceManager) {
$config = $serviceManager->get('config');
$sessionTableName = null;
if ( array_key_exists('session_table_name', $config)) {
$sessionTableName = $config['session_table_name'];
}
$sessionTableGateway = new TableGateway(
$sessionTableName,
$serviceManager->get('Zend\Db\Adapter\Session'));
return $sessionTableGateway;
},
'session_db_options' => function ($serviceManager) {
$config = $serviceManager->get('config');
$sessionDbOptions = null;
if ( array_key_exists('session_table', $config) && is_array($config['session_table']) ) {
$sessionDbOptions = new SaveHandler\DbTableGatewayOptions($config['session_table']);
}
return $sessionDbOptions;
},
'session_save_handler' => function ($serviceManager) {
$saveHandler = new SaveHandler\DbTableGateway(
$serviceManager->get('session_table'),
$serviceManager->get('session_db_options'));
return $saveHandler;
},
'session_options' => function ($serviceManager) {
$config = $serviceManager->get('config');
$sessionConfig = null;
if ( array_key_exists('session', $config) && is_array($config['session']) ) {
$sessionConfig = new SessionConfig();
$sessionConfig->setOptions($config['session']);
}
return $sessionConfig;
},
'session_save_manager' => function ($serviceManager) {
$sessionManager = new SessionManager(
$serviceManager->get('session_options'),
null,
$serviceManager->get('session_save_handler'));
return $sessionManager;
},
)
);
}
public function getConfig()
{
return include __DIR__ . '/config/module.config.php';
}
public function getAutoloaderConfig()
{
return array(
'Zend\Loader\StandardAutoloader' => array(
'namespaces' => array(
__NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
),
),
);
}
}