Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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