Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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