Proyectos de Subversion LeadersLinked - Backend

Rev

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