Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 112 | Ir a la última revisión | | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 www 1
<?php
2
 
3
/**
4
 * Global Configuration Override
5
 *
6
 * You can use this file for overriding configuration values from modules, etc.
7
 * You would place values in here that are agnostic to the environment and not
8
 * sensitive to security.
9
 *
10
 * NOTE: In practice, this file will typically be INCLUDED in your source
11
 * control, so do not include passwords or other sensitive information in this
12
 * file.
13
 */
14
use Laminas\Session\Storage\SessionArrayStorage;
15
use Laminas\Session\Validator\RemoteAddr;
16
use Laminas\Session\Validator\HttpUserAgent;
17
use LeadersLinked\Handler\SessionHandler;
18
use Laminas\Session\SessionManager;
19
use Laminas\Session\Container;
20
use Laminas\Session\Config\SessionConfig;
21
use Laminas\Db\TableGateway\TableGateway;
22
use LeadersLinked\Mapper\SessionMapper;
23
use Laminas\Session\SaveHandler\DbTableGateway;
24
use Laminas\Session\SaveHandler\DbTableGatewayOptions;
25
 
26
return [
27
 'session' => [
28
        'config' => [
29
            'class' => 'Laminas\Session\Config\SessionConfig',
30
            'options' => [
31
                'name' => 'LeadersLinked',
32
                'use_cookies' => true,
33
                // Session cookie will expire in 24 hour.
34
                'cookie_lifetime' => 60*60*24,
35
                // Session data will be stored on server maximum for 30 days.
36
                'gc_maxlifetime'     => 60*60*24*30,
37
            ],
38
        ],
39
        'storage' => SessionArrayStorage::class,
40
        'validators' => [
41
            RemoteAddr::class,
42
            HttpUserAgent::class,
43
        ],
44
    ],
45
 
46
    'caches' => [
47
        'leaders-linked-cache' => [
48
            'adapter' => [
49
                'name'     =>'filesystem',
50
                'options'  => [
51
                    'ttl' => 7200,
52
                ],
53
            ],
54
            /*'adapter' => [
55
                'name'     =>'memcached',
56
                'options' => [
57
                    'ttl' => 7200,
58
                    'servers' => [
59
                        [
60
                            'host' => '127.0.0.1',
61
                            'port' =>11211
62
                        ]
63
                    ],
64
                    'namespace'  => 'LL',
65
                    'liboptions' => [
66
                        'COMPRESSION' => true,
67
                        'binary_protocol' => true,
68
                        'no_block' => true,
69
                        'connect_timeout' => 100
70
                    ]
71
                ],
72
 
73
            ],*/
74
            'plugins' => [
75
                'exception_handler' => [
76
                    'throw_exceptions' => false
77
                ],
78
            ],
79
        ]
80
    ],
81
   /* 'db' => [
82
        'adapters' => [
83
            'leaders-linked-db' => [
84
                'driver'         	=> 'Pdo',
85
                'dsn'           	=> 'mysql:dbname=leaderslinked;host=localhost',
86
                'username'			=> 'test',
87
                'password'			=> 'T3st001-',
88
                'driver_options' 	=> array(
89
                    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
90
                ),
91
            ],
92
 
93
        ]
94
    ],*/
95
    'service_manager' => [
96
        'factories' => [
97
            //'Laminas\Db\Adapter\Adapter'  => 'Laminas\Db\Adapter\AdapterServiceFactory',
98
 
99
            'leaders-linked-db' => function ($sm) {
100
                $config = $sm->get('config');
101
 
102
                $sandbox = $config['leaderslinked.runmode.sandbox'];
103
                if($sandbox) {
104
                    $host       = $config['leaderslinked.database.sandbox_host'];
105
                    $port       = $config['leaderslinked.database.sandbox_port'];
106
                    $dbname     = $config['leaderslinked.database.sandbox_dbname'];
107
                    $user       = $config['leaderslinked.database.sandbox_user'];
108
                    $password   = $config['leaderslinked.database.sandbox_password'];
109
                } else {
110
                    $host       = $config['leaderslinked.database.production_host'];
111
                    $port       = $config['leaderslinked.database.production_port'];
112
                    $dbname     = $config['leaderslinked.database.production_dbname'];
113
                    $user       = $config['leaderslinked.database.production_user'];
114
                    $password   = $config['leaderslinked.database.production_password'];
115
                }
116
 
117
 
118
               $adapter = new \Laminas\Db\Adapter\Adapter([
119
                    'driver'         	=> 'Pdo',
120
                    'dsn'           	=> 'mysql:dbname=' . $dbname . ';host=' . $host . ';port=' . $port,
121
                    'username'			=> $user,
122
                    'password'			=> $password,
123
                    'driver_options' 	=> [
124
                        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
125
                    ],
126
                ]);
127
 
128
                return $adapter;
129
 
130
            },
131
            'leaders-linked-log' => function($sm) {
132
                $formatter = new \Laminas\Log\Formatter\Base();
133
                $formatter->setDateTimeFormat('Y-m-d H:i:s');
134
 
135
                $mapping = array(
136
                    'timestamp'     => 'added_on',
137
                    'priority'      => 'priority_level',
138
                    'priorityName'  => 'priority_name',
139
                    'message'       => 'message',
140
                    'extra'       => [
141
                        'user_id'    => 'user_id',
142
                        'ip' => 'ip'
143
                    ]
144
                );
145
 
146
                $adapter = $sm->get('leaders-linked-db');
147
                $writer = new \Laminas\Log\Writer\Db($adapter, 'tbl_logs', $mapping);
148
                $writer->setFormatter($formatter);
149
 
150
                $logger = new \Laminas\Log\Logger();
151
                $logger->addWriter($writer);
152
 
153
 
154
                return $logger;
155
            },
156
            /*'leaders-linked-session' => function ($sm) {
157
                $adapter    = $sm->get('leaders-linked-db');
158
                //$logger     = $sm->get('leaders-linked-log');
159
 
160
                $config = $sm->get('config');
161
                if (! isset($config['session'])) {
162
                    $sessionManager = new SessionManager();
163
                    Container::setDefaultManager($sessionManager);
164
                    return $sessionManager;
165
                }
166
 
167
                $session = $config['session'];
168
 
169
                $sessionConfig = null;
170
                if (isset($session['config'])) {
171
                    $class = isset($session['config']['class'])
172
                    ?  $session['config']['class']
173
                    : SessionConfig::class;
174
 
175
                    $options = isset($session['config']['options'])
176
                    ?  $session['config']['options']
177
                    : [];
178
 
179
                    $options['remember_me_seconds'] = 31536000;  // 365 * 24 * 60 * 60
180
                   // $options['use_cookies'] = false;
181
 
182
                    $sessionConfig = new $class();
183
                    $sessionConfig->setOptions($options);
184
                }
185
 
186
 
187
                $sessionStorage = null;
188
                if (isset($session['storage'])) {
189
                    $class = $session['storage'];
190
                    $sessionStorage = new $class();
191
                }
192
 
193
                $sessionSaveHandler = null;
194
                if (isset($session['save_handler'])) {
195
                    // class should be fetched from service manager
196
                    // since it will require constructor arguments
197
                    $sessionSaveHandler = $sm->get($session['save_handler']);
198
                }
199
 
200
                $tableGateway = new TableGateway(SessionMapper::_TABLE, $adapter);
201
                $sessionSaveHandler  = new DbTableGateway($tableGateway, new DbTableGatewayOptions());
202
 
203
                $sessionManager = new SessionManager(
204
                    $sessionConfig,
205
                    $sessionStorage,
206
                    $sessionSaveHandler
207
                );
208
 
209
                Container::setDefaultManager($sessionManager);
210
                return $sessionManager;
211
             },*/
212
 
213
            'leaders-linked-session' => function ($sm) {
214
                $config = $sm->get('config');
215
                if (isset($config['session'])) {
216
 
217
                    $session = $config['session'];
218
 
219
 
220
                    $sessionConfig = null;
221
                    if (isset($session['config'])) {
222
                        $class = isset($session['config']['class'])  ? $session['config']['class'] : 'Laminas\Session\Config\SessionConfig';
223
                        $options = isset($session['config']['options']) ? $session['config']['options'] : [];
224
 
225
 
226
                        $options['remember_me_seconds'] = 7200;  // 60 * 60 * 2seconds
227
                        $options['use_cookies'] = true;
228
                        $sessionConfig = new $class();
229
                        $sessionConfig->setOptions($options);
230
                    }
231
 
232
                    $sessionStorage = null;
233
                    if (isset($session['storage'])) {
234
                        $class = $session['storage'];
235
                        $sessionStorage = new $class();
236
                    }
237
 
238
 
239
                    $sessionManager = new \Laminas\Session\SessionManager();
240
                    $sessionManager->setConfig($sessionConfig);
241
                    $sessionManager->setStorage($sessionStorage);
242
 
243
 
244
                    $adapter    = $sm->get('leaders-linked-db');
245
                    $logger     = $sm->get('leaders-linked-log');
246
                    $saveHandler= new SessionHandler($adapter, $logger, $sessionConfig->getCookieLifetime());
247
 
248
                    $sessionManager->setSaveHandler($saveHandler);
249
                } else {
250
                    $sessionManager = new \Laminas\Session\SessionManager();
251
                }
252
 
253
                \Laminas\Session\Container::setDefaultManager($sessionManager);
254
                return $sessionManager;
255
            },
256
        ],
257
        'abstract_factories' => [
258
            'Laminas\Cache\Service\StorageCacheAbstractServiceFactory',
259
        ]
260
    ],
261
 
262
 
263
];