Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 16766 | Rev 16770 | 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;
16285 efrain 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
use Laminas\Session\Storage\SessionStorage;
14506 efrain 26
use Laminas\Session\SaveHandler\Cache;
16769 efrain 27
use LeadersLinked\Cache\CacheImpl;
1 www 28
 
29
return [
30
 'session' => [
31
        'config' => [
32
            'class' => 'Laminas\Session\Config\SessionConfig',
33
            'options' => [
16285 efrain 34
                'name'              => 'LeadersLinked',
28 efrain 35
                'use_cookies'       => true,
16285 efrain 36
                'cookie_lifetime'   => 60*60*24*30,
37
                'gc_maxlifetime'    => 60*60*24,
1 www 38
            ],
39
        ],
40
        'storage' => SessionArrayStorage::class,
41
        'validators' => [
42
            RemoteAddr::class,
43
            HttpUserAgent::class,
44
        ],
45
    ],
16766 efrain 46
 
1 www 47
 
48
    'service_manager' => [
49
        'factories' => [
50
            //'Laminas\Db\Adapter\Adapter'  => 'Laminas\Db\Adapter\AdapterServiceFactory',
51
 
16769 efrain 52
            'leaders-linked-cache' => function ($sm) {
53
                $config = $sm->get('config');
54
 
55
                $cache = new CacheImpl($config);
56
                return $cache;
57
 
58
            },
59
 
1 www 60
            'leaders-linked-db' => function ($sm) {
61
                $config = $sm->get('config');
62
 
63
                $sandbox = $config['leaderslinked.runmode.sandbox'];
64
                if($sandbox) {
65
                    $host       = $config['leaderslinked.database.sandbox_host'];
66
                    $port       = $config['leaderslinked.database.sandbox_port'];
67
                    $dbname     = $config['leaderslinked.database.sandbox_dbname'];
68
                    $user       = $config['leaderslinked.database.sandbox_user'];
69
                    $password   = $config['leaderslinked.database.sandbox_password'];
70
                } else {
71
                    $host       = $config['leaderslinked.database.production_host'];
72
                    $port       = $config['leaderslinked.database.production_port'];
73
                    $dbname     = $config['leaderslinked.database.production_dbname'];
74
                    $user       = $config['leaderslinked.database.production_user'];
75
                    $password   = $config['leaderslinked.database.production_password'];
76
                }
77
 
78
 
79
               $adapter = new \Laminas\Db\Adapter\Adapter([
80
                    'driver'         	=> 'Pdo',
81
                    'dsn'           	=> 'mysql:dbname=' . $dbname . ';host=' . $host . ';port=' . $port,
82
                    'username'			=> $user,
83
                    'password'			=> $password,
84
                    'driver_options' 	=> [
16285 efrain 85
                        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\'',
1 www 86
                    ],
87
                ]);
88
 
89
                return $adapter;
90
 
91
            },
92
            'leaders-linked-log' => function($sm) {
93
                $formatter = new \Laminas\Log\Formatter\Base();
94
                $formatter->setDateTimeFormat('Y-m-d H:i:s');
95
 
96
                $mapping = array(
97
                    'timestamp'     => 'added_on',
98
                    'priority'      => 'priority_level',
99
                    'priorityName'  => 'priority_name',
100
                    'message'       => 'message',
101
                    'extra'       => [
102
                        'user_id'    => 'user_id',
103
                        'ip' => 'ip'
104
                    ]
105
                );
106
 
107
                $adapter = $sm->get('leaders-linked-db');
108
                $writer = new \Laminas\Log\Writer\Db($adapter, 'tbl_logs', $mapping);
109
                $writer->setFormatter($formatter);
110
 
111
                $logger = new \Laminas\Log\Logger();
112
                $logger->addWriter($writer);
113
 
114
 
115
                return $logger;
116
            },
14508 efrain 117
 
1 www 118
            'leaders-linked-session' => function ($sm) {
119
                $config = $sm->get('config');
120
                if (isset($config['session'])) {
121
 
122
                    $session = $config['session'];
123
 
124
 
125
                    $sessionConfig = null;
126
                    if (isset($session['config'])) {
127
                        $class = isset($session['config']['class'])  ? $session['config']['class'] : 'Laminas\Session\Config\SessionConfig';
128
                        $options = isset($session['config']['options']) ? $session['config']['options'] : [];
129
 
130
 
131
                        $options['remember_me_seconds'] = 7200;  // 60 * 60 * 2seconds
132
                        $options['use_cookies'] = true;
133
                        $sessionConfig = new $class();
134
                        $sessionConfig->setOptions($options);
135
                    }
136
 
14508 efrain 137
                    $sessionStorage = null;
1 www 138
                    if (isset($session['storage'])) {
139
                        $class = $session['storage'];
140
                        $sessionStorage = new $class();
141
                    }
142
 
14508 efrain 143
 
1 www 144
                    $sessionManager = new \Laminas\Session\SessionManager();
145
                    $sessionManager->setConfig($sessionConfig);
146
                    $sessionManager->setStorage($sessionStorage);
16285 efrain 147
 
148
                    $adapter    = $sm->get('leaders-linked-db');
149
                    $logger     = $sm->get('leaders-linked-log');
150
                    $saveHandler= new SessionHandler($adapter, $logger, $sessionConfig->getCookieLifetime());
151
 
152
                    $sessionManager->setSaveHandler($saveHandler);
16766 efrain 153
 
14505 efrain 154
 
16285 efrain 155
 
1 www 156
                } else {
157
                    $sessionManager = new \Laminas\Session\SessionManager();
158
                }
159
 
160
                \Laminas\Session\Container::setDefaultManager($sessionManager);
161
                return $sessionManager;
162
            },
163
        ],
164
        'abstract_factories' => [
16766 efrain 165
           // 'Laminas\Cache\Service\StorageCacheAbstractServiceFactory',
1 www 166
        ]
167
    ],
168
 
169
 
170
];
14508 efrain 171