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' => [
]
],
];