Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 1 | Rev 169 | Ir a la última revisión | | Comparar con el anterior | 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;
112 efrain 25
use Laminas\Session\Storage\SessionStorage;
1 www 26
 
27
return [
28
 'session' => [
29
        'config' => [
30
            'class' => 'Laminas\Session\Config\SessionConfig',
31
            'options' => [
32
                'name' => 'LeadersLinked',
33
                'use_cookies' => true,
34
                // Session cookie will expire in 24 hour.
35
                'cookie_lifetime' => 60*60*24,
36
                // Session data will be stored on server maximum for 30 days.
37
                'gc_maxlifetime'     => 60*60*24*30,
38
            ],
39
        ],
40
        'storage' => SessionArrayStorage::class,
41
        'validators' => [
42
            RemoteAddr::class,
43
            HttpUserAgent::class,
44
        ],
45
    ],
46
 
47
    'caches' => [
48
        'leaders-linked-cache' => [
49
            'adapter' => [
50
                'name'     =>'filesystem',
51
                'options'  => [
52
                    'ttl' => 7200,
53
                ],
54
            ],
55
            /*'adapter' => [
56
                'name'     =>'memcached',
57
                'options' => [
58
                    'ttl' => 7200,
59
                    'servers' => [
60
                        [
61
                            'host' => '127.0.0.1',
62
                            'port' =>11211
63
                        ]
64
                    ],
65
                    'namespace'  => 'LL',
66
                    'liboptions' => [
67
                        'COMPRESSION' => true,
68
                        'binary_protocol' => true,
69
                        'no_block' => true,
70
                        'connect_timeout' => 100
71
                    ]
72
                ],
73
 
74
            ],*/
75
            'plugins' => [
76
                'exception_handler' => [
77
                    'throw_exceptions' => false
78
                ],
79
            ],
80
        ]
81
    ],
82
   /* 'db' => [
83
        'adapters' => [
84
            'leaders-linked-db' => [
85
                'driver'         	=> 'Pdo',
86
                'dsn'           	=> 'mysql:dbname=leaderslinked;host=localhost',
87
                'username'			=> 'test',
88
                'password'			=> 'T3st001-',
89
                'driver_options' 	=> array(
90
                    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
91
                ),
92
            ],
93
 
94
        ]
95
    ],*/
96
    'service_manager' => [
97
        'factories' => [
98
            //'Laminas\Db\Adapter\Adapter'  => 'Laminas\Db\Adapter\AdapterServiceFactory',
99
 
100
            'leaders-linked-db' => function ($sm) {
101
                $config = $sm->get('config');
102
 
103
                $sandbox = $config['leaderslinked.runmode.sandbox'];
104
                if($sandbox) {
105
                    $host       = $config['leaderslinked.database.sandbox_host'];
106
                    $port       = $config['leaderslinked.database.sandbox_port'];
107
                    $dbname     = $config['leaderslinked.database.sandbox_dbname'];
108
                    $user       = $config['leaderslinked.database.sandbox_user'];
109
                    $password   = $config['leaderslinked.database.sandbox_password'];
110
                } else {
111
                    $host       = $config['leaderslinked.database.production_host'];
112
                    $port       = $config['leaderslinked.database.production_port'];
113
                    $dbname     = $config['leaderslinked.database.production_dbname'];
114
                    $user       = $config['leaderslinked.database.production_user'];
115
                    $password   = $config['leaderslinked.database.production_password'];
116
                }
117
 
118
 
119
               $adapter = new \Laminas\Db\Adapter\Adapter([
120
                    'driver'         	=> 'Pdo',
121
                    'dsn'           	=> 'mysql:dbname=' . $dbname . ';host=' . $host . ';port=' . $port,
122
                    'username'			=> $user,
123
                    'password'			=> $password,
124
                    'driver_options' 	=> [
125
                        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
126
                    ],
127
                ]);
128
 
129
                return $adapter;
130
 
131
            },
132
            'leaders-linked-log' => function($sm) {
133
                $formatter = new \Laminas\Log\Formatter\Base();
134
                $formatter->setDateTimeFormat('Y-m-d H:i:s');
135
 
136
                $mapping = array(
137
                    'timestamp'     => 'added_on',
138
                    'priority'      => 'priority_level',
139
                    'priorityName'  => 'priority_name',
140
                    'message'       => 'message',
141
                    'extra'       => [
142
                        'user_id'    => 'user_id',
143
                        'ip' => 'ip'
144
                    ]
145
                );
146
 
112 efrain 147
 
148
 
149
                /*
150
                $writer = new Laminas\Log\Writer\Stream('logs/leaderslinked.log');
151
                $logger = new Laminas\Log\Logger();
152
                $logger->addWriter($writer);
153
                */
154
 
1 www 155
                $adapter = $sm->get('leaders-linked-db');
112 efrain 156
 
1 www 157
                $writer = new \Laminas\Log\Writer\Db($adapter, 'tbl_logs', $mapping);
158
                $writer->setFormatter($formatter);
159
 
160
                $logger = new \Laminas\Log\Logger();
161
                $logger->addWriter($writer);
112 efrain 162
 
1 www 163
 
164
 
165
                return $logger;
166
            },
167
            /*'leaders-linked-session' => function ($sm) {
168
                $adapter    = $sm->get('leaders-linked-db');
169
                //$logger     = $sm->get('leaders-linked-log');
170
 
171
                $config = $sm->get('config');
172
                if (! isset($config['session'])) {
173
                    $sessionManager = new SessionManager();
174
                    Container::setDefaultManager($sessionManager);
175
                    return $sessionManager;
176
                }
177
 
178
                $session = $config['session'];
179
 
180
                $sessionConfig = null;
181
                if (isset($session['config'])) {
182
                    $class = isset($session['config']['class'])
183
                    ?  $session['config']['class']
184
                    : SessionConfig::class;
185
 
186
                    $options = isset($session['config']['options'])
187
                    ?  $session['config']['options']
188
                    : [];
189
 
190
                    $options['remember_me_seconds'] = 31536000;  // 365 * 24 * 60 * 60
191
                   // $options['use_cookies'] = false;
192
 
193
                    $sessionConfig = new $class();
194
                    $sessionConfig->setOptions($options);
195
                }
196
 
197
 
198
                $sessionStorage = null;
199
                if (isset($session['storage'])) {
200
                    $class = $session['storage'];
201
                    $sessionStorage = new $class();
202
                }
203
 
204
                $sessionSaveHandler = null;
205
                if (isset($session['save_handler'])) {
206
                    // class should be fetched from service manager
207
                    // since it will require constructor arguments
208
                    $sessionSaveHandler = $sm->get($session['save_handler']);
209
                }
210
 
211
                $tableGateway = new TableGateway(SessionMapper::_TABLE, $adapter);
212
                $sessionSaveHandler  = new DbTableGateway($tableGateway, new DbTableGatewayOptions());
213
 
214
                $sessionManager = new SessionManager(
215
                    $sessionConfig,
216
                    $sessionStorage,
217
                    $sessionSaveHandler
218
                );
219
 
220
                Container::setDefaultManager($sessionManager);
221
                return $sessionManager;
222
             },*/
223
 
224
            'leaders-linked-session' => function ($sm) {
225
                $config = $sm->get('config');
226
                if (isset($config['session'])) {
227
 
228
                    $session = $config['session'];
229
 
230
 
231
                    $sessionConfig = null;
232
                    if (isset($session['config'])) {
233
                        $class = isset($session['config']['class'])  ? $session['config']['class'] : 'Laminas\Session\Config\SessionConfig';
234
                        $options = isset($session['config']['options']) ? $session['config']['options'] : [];
235
 
236
 
237
                        $options['remember_me_seconds'] = 7200;  // 60 * 60 * 2seconds
238
                        $options['use_cookies'] = true;
239
                        $sessionConfig = new $class();
240
                        $sessionConfig->setOptions($options);
241
                    }
242
 
112 efrain 243
                    $sessionStorage = new SessionStorage();
1 www 244
                    if (isset($session['storage'])) {
245
                        $class = $session['storage'];
246
                        $sessionStorage = new $class();
247
                    }
248
 
112 efrain 249
 
1 www 250
                    $sessionManager = new \Laminas\Session\SessionManager();
251
                    $sessionManager->setConfig($sessionConfig);
252
                    $sessionManager->setStorage($sessionStorage);
253
 
254
 
255
                    $adapter    = $sm->get('leaders-linked-db');
256
                    $logger     = $sm->get('leaders-linked-log');
257
                    $saveHandler= new SessionHandler($adapter, $logger, $sessionConfig->getCookieLifetime());
258
 
259
                    $sessionManager->setSaveHandler($saveHandler);
112 efrain 260
 
261
 
262
                    /*
263
                    $sessionManager = new \Laminas\Session\SessionManager();
264
                    $sessionManager->setConfig($sessionConfig);
265
                    $sessionManager->setStorage($sessionStorage);
266
                    */
267
 
268
 
269
 
1 www 270
                } else {
271
                    $sessionManager = new \Laminas\Session\SessionManager();
272
                }
273
 
274
                \Laminas\Session\Container::setDefaultManager($sessionManager);
275
                return $sessionManager;
276
            },
277
        ],
278
        'abstract_factories' => [
279
            'Laminas\Cache\Service\StorageCacheAbstractServiceFactory',
280
        ]
281
    ],
282
 
283
 
284
];