Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 6866 | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

<?php

/**
 * Global Configuration Override
 *
 * You can use this file for overriding configuration values from modules, etc.
 * You would place values in here that are agnostic to the environment and not
 * sensitive to security.
 *
 * NOTE: In practice, this file will typically be INCLUDED in your source
 * control, so do not include passwords or other sensitive information in this
 * file.
 */
use Laminas\Session\Storage\SessionArrayStorage;
use Laminas\Session\Validator\RemoteAddr;
use Laminas\Session\Validator\HttpUserAgent;
use LeadersLinked\Handler\SessionHandler;
use Laminas\Session\Storage\SessionStorage;
use LeadersLinked\Cache\CacheImpl;
use LeadersLinked\Handler\SessionCacheHandler;



return [
    'session' => [
        'config' => [
            'class' => 'Laminas\Session\Config\SessionConfig',
            'options' => [
                'name'              => 'LeadersLinked',
                'use_cookies'       => true,
                'cookie_lifetime'   => 60*60*24*30,
                'gc_maxlifetime'    => 60*60*24,
            ],
        ],
        'storage' => SessionArrayStorage::class,
        'validators' => [
            RemoteAddr::class,
            HttpUserAgent::class,
        ],
    ],
    'service_manager' => [
        
        'factories' => [
            //'Laminas\Db\Adapter\Adapter'  => 'Laminas\Db\Adapter\AdapterServiceFactory',
        
            'leaders-linked-cache' => function ($sm) {
                $config = $sm->get('config');
               
                $cache = new CacheImpl($config);
                return $cache;
            
            },
            
            'leaders-linked-db' => function ($sm) {
                $config = $sm->get('config');
                
                $sandbox = $config['leaderslinked.runmode.sandbox'];
                if($sandbox) {
                    $host       = $config['leaderslinked.database.sandbox_host'];
                    $port       = $config['leaderslinked.database.sandbox_port'];
                    $dbname     = $config['leaderslinked.database.sandbox_dbname'];
                    $user       = $config['leaderslinked.database.sandbox_user'];
                    $password   = $config['leaderslinked.database.sandbox_password'];
                } else {
                    $host       = $config['leaderslinked.database.production_host'];
                    $port       = $config['leaderslinked.database.production_port'];
                    $dbname     = $config['leaderslinked.database.production_dbname'];
                    $user       = $config['leaderslinked.database.production_user'];
                    $password   = $config['leaderslinked.database.production_password'];
                }
                
                
                $adapter = new \Laminas\Db\Adapter\Adapter([
                    'driver'            => 'Pdo',
                    'dsn'               => 'mysql:dbname=' . $dbname . ';host=' . $host . ';port=' . $port,
                    'username'                  => $user,
                    'password'                  => $password,
                    'driver_options'    => [
                        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
                    ],
                ]);
            
            return $adapter;
            
            },
            'leaders-linked-log' => function($sm) {
                $formatter = new \Laminas\Log\Formatter\Base();
                $formatter->setDateTimeFormat('Y-m-d H:i:s');
                
                $mapping = array(
                    'timestamp'     => 'added_on',
                    'priority'      => 'priority_level',
                    'priorityName'  => 'priority_name',
                    'message'       => 'message',
                    'extra'       => [
                        'user_id'    => 'user_id',
                        'ip' => 'ip'
                    ]
                );
            
            
                $adapter = $sm->get('leaders-linked-db');
                
                $writer = new \Laminas\Log\Writer\Db($adapter, 'tbl_logs', $mapping);
                $writer->setFormatter($formatter);
                
                $logger = new \Laminas\Log\Logger();
                $logger->addWriter($writer);
                
                
                
                return $logger;
            },
          
            'leaders-linked-session' => function ($sm) {
                $config = $sm->get('config');
                if (isset($config['session'])) {
                    
                    $session = $config['session'];
                    
                    
                    $sessionConfig = null;
                    if (isset($session['config'])) {
                        $class = isset($session['config']['class'])  ? $session['config']['class'] : 'Laminas\Session\Config\SessionConfig';
                        $options = isset($session['config']['options']) ? $session['config']['options'] : [];
                        
                        
                        $options['remember_me_seconds'] = 7200;  // 60 * 60 * 2seconds
                        $options['use_cookies'] = true;
                        $sessionConfig = new $class();
                        $sessionConfig->setOptions($options);
                    }
                    
                    $sessionStorage = new SessionStorage();
                    if (isset($session['storage'])) {
                        $class = $session['storage'];
                        $sessionStorage = new $class();
                    }
                    
                    
                   
                    
                    
                    $sessionManager = new \Laminas\Session\SessionManager();
                    $sessionManager->setConfig($sessionConfig);
                    $sessionManager->setStorage($sessionStorage);
    
                    if(!empty($config['leaderslinked.runmode.session_in_cache'])) {
                        $cache    = $sm->get('leaders-linked-cache');
                        $saveHandler= new SessionCacheHandler($cache);
                        $sessionManager->setSaveHandler($saveHandler);
                    }
                    
                    
                } else {
                    $sessionManager = new \Laminas\Session\SessionManager();
                }
                
                \Laminas\Session\Container::setDefaultManager($sessionManager);
                return $sessionManager;
            },
        ],
        'abstract_factories' => [
                
        ]
    ],
            
];