Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 28 | 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 Laminas\Session\SaveHandler\Cache;
18
 
19
return [
20
 'session' => [
21
        'config' => [
22
            'class' => 'Laminas\Session\Config\SessionConfig',
23
            'options' => [
24
                'name' => 'LeadersLinked',
25
                'use_cookies' => true,
26
                // Session cookie will expire in 24 hour.
27
                'cookie_lifetime' => 60*60*24,
28
                // Session data will be stored on server maximum for 30 days.
29
                'gc_maxlifetime'     => 60*60*24*30,
30
            ],
31
        ],
32
        'storage' => SessionArrayStorage::class,
33
        'validators' => [
34
            RemoteAddr::class,
35
            HttpUserAgent::class,
36
        ],
37
    ],
38
 
39
    'caches' => [
40
        'leaders-linked-cache' => [
41
            'adapter' => [
42
                'name'     =>'filesystem',
43
                'options'  => [
44
                    'ttl' => 7200,
45
                ],
46
            ],
47
            /*'adapter' => [
48
                'name'     =>'memcached',
49
                'options' => [
50
                    'ttl' => 7200,
51
                    'servers' => [
52
                        [
53
                            'host' => '127.0.0.1',
54
                            'port' =>11211
55
                        ]
56
                    ],
57
                    'namespace'  => 'LL',
58
                    'liboptions' => [
59
                        'COMPRESSION' => true,
60
                        'binary_protocol' => true,
61
                        'no_block' => true,
62
                        'connect_timeout' => 100
63
                    ]
64
                ],
65
 
66
            ],*/
67
            'plugins' => [
68
                'exception_handler' => [
69
                    'throw_exceptions' => false
70
                ],
71
            ],
72
        ]
73
    ],
74
   /* 'db' => [
75
        'adapters' => [
76
            'leaders-linked-db' => [
77
                'driver'         	=> 'Pdo',
78
                'dsn'           	=> 'mysql:dbname=leaderslinked;host=localhost',
79
                'username'			=> 'test',
80
                'password'			=> 'T3st001-',
81
                'driver_options' 	=> array(
82
                    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
83
                ),
84
            ],
85
 
86
        ]
87
    ],*/
88
    'service_manager' => [
89
        'factories' => [
90
            //'Laminas\Db\Adapter\Adapter'  => 'Laminas\Db\Adapter\AdapterServiceFactory',
91
 
92
            'leaders-linked-db' => function ($sm) {
93
                $config = $sm->get('config');
94
 
95
                $sandbox = $config['leaderslinked.runmode.sandbox'];
96
                if($sandbox) {
97
                    $host       = $config['leaderslinked.database.sandbox_host'];
98
                    $port       = $config['leaderslinked.database.sandbox_port'];
99
                    $dbname     = $config['leaderslinked.database.sandbox_dbname'];
100
                    $user       = $config['leaderslinked.database.sandbox_user'];
101
                    $password   = $config['leaderslinked.database.sandbox_password'];
102
                } else {
103
                    $host       = $config['leaderslinked.database.production_host'];
104
                    $port       = $config['leaderslinked.database.production_port'];
105
                    $dbname     = $config['leaderslinked.database.production_dbname'];
106
                    $user       = $config['leaderslinked.database.production_user'];
107
                    $password   = $config['leaderslinked.database.production_password'];
108
                }
109
 
110
 
111
               $adapter = new \Laminas\Db\Adapter\Adapter([
112
                    'driver'         	=> 'Pdo',
113
                    'dsn'           	=> 'mysql:dbname=' . $dbname . ';host=' . $host . ';port=' . $port,
114
                    'username'			=> $user,
115
                    'password'			=> $password,
116
                    'driver_options' 	=> [
117
                        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
118
                    ],
119
                ]);
120
 
121
                return $adapter;
122
 
123
            },
124
            'leaders-linked-log' => function($sm) {
125
                $formatter = new \Laminas\Log\Formatter\Base();
126
                $formatter->setDateTimeFormat('Y-m-d H:i:s');
127
 
128
                $mapping = array(
129
                    'timestamp'     => 'added_on',
130
                    'priority'      => 'priority_level',
131
                    'priorityName'  => 'priority_name',
132
                    'message'       => 'message',
133
                    'extra'       => [
134
                        'user_id'    => 'user_id',
135
                        'ip' => 'ip'
136
                    ]
137
                );
138
 
139
                $adapter = $sm->get('leaders-linked-db');
140
                $writer = new \Laminas\Log\Writer\Db($adapter, 'tbl_logs', $mapping);
141
                $writer->setFormatter($formatter);
142
 
143
                $logger = new \Laminas\Log\Logger();
144
                $logger->addWriter($writer);
145
 
146
 
147
                return $logger;
148
            },
149
 
150
            'leaders-linked-session' => function ($sm) {
151
                $config = $sm->get('config');
152
                if (isset($config['session'])) {
153
 
154
                    $session = $config['session'];
155
 
156
 
157
                    $sessionConfig = null;
158
                    if (isset($session['config'])) {
159
                        $class = isset($session['config']['class'])  ? $session['config']['class'] : 'Laminas\Session\Config\SessionConfig';
160
                        $options = isset($session['config']['options']) ? $session['config']['options'] : [];
161
 
162
 
163
                        $options['remember_me_seconds'] = 7200;  // 60 * 60 * 2seconds
164
                        $options['use_cookies'] = true;
165
                        $sessionConfig = new $class();
166
                        $sessionConfig->setOptions($options);
167
                    }
168
 
169
                    $sessionStorage = null;
170
                    if (isset($session['storage'])) {
171
                        $class = $session['storage'];
172
                        $sessionStorage = new $class();
173
                    }
174
 
175
 
176
                    $sessionManager = new \Laminas\Session\SessionManager();
177
                    $sessionManager->setConfig($sessionConfig);
178
                    $sessionManager->setStorage($sessionStorage);
179
 
180
 
181
                    $cache = $sm->get('leaders-linked-cache');
182
 
183
                    $saveHandler = new Cache($cache);
184
                    $sessionManager->setSaveHandler($saveHandler);
185
 
186
                    $sessionManager->setSaveHandler($saveHandler);
187
                } else {
188
                    $sessionManager = new \Laminas\Session\SessionManager();
189
                }
190
 
191
                \Laminas\Session\Container::setDefaultManager($sessionManager);
192
                return $sessionManager;
193
            },
194
        ],
195
        'abstract_factories' => [
196
            'Laminas\Cache\Service\StorageCacheAbstractServiceFactory',
197
        ]
198
    ],
199
 
200
 
201
];