Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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