Rev 258 | Rev 4684 | Ir a la última revisión | 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\SessionManager;
use Laminas\Session\Container;
use Laminas\Session\Config\SessionConfig;
use Laminas\Db\TableGateway\TableGateway;
use LeadersLinked\Mapper\SessionMapper;
use Laminas\Session\SaveHandler\DbTableGateway;
use Laminas\Session\SaveHandler\DbTableGatewayOptions;
use Laminas\Session\Storage\SessionStorage;
$httpHost = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : 'LeadersLinked';
$cookieName = str_replace('.', '-', $httpHost);
return [
'session' => [
'config' => [
'class' => 'Laminas\Session\Config\SessionConfig',
'options' => [
'name' => $cookieName ,
'use_cookies' => true,
'cookie_lifetime' => 60*60*24+30,
//'cookie_httponly' => 1,
//'cookie_secure' => true,
//'cookie_domain' => $httpHost,
'gc_maxlifetime' => 60*60*24*30,
],
],
'storage' => SessionArrayStorage::class,
'validators' => [
RemoteAddr::class,
HttpUserAgent::class,
],
],
'caches' => [
'leaders-linked-cache' => [
'adapter' => [
'name' =>'filesystem',
'options' => [
'ttl' => 7200,
],
],
/*'adapter' => [
'name' =>'memcached',
'options' => [
'ttl' => 7200,
'servers' => [
[
'host' => '127.0.0.1',
'port' =>11211
]
],
'namespace' => 'LL',
'liboptions' => [
'COMPRESSION' => true,
'binary_protocol' => true,
'no_block' => true,
'connect_timeout' => 100
]
],
],*/
'plugins' => [
'exception_handler' => [
'throw_exceptions' => false
],
],
]
],
/* 'db' => [
'adapters' => [
'leaders-linked-db' => [
'driver' => 'Pdo',
'dsn' => 'mysql:dbname=leaderslinked;host=localhost',
'username' => 'test',
'password' => 'T3st001-',
'driver_options' => array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
),
],
]
],*/
'service_manager' => [
'factories' => [
//'Laminas\Db\Adapter\Adapter' => 'Laminas\Db\Adapter\AdapterServiceFactory',
'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'
]
);
/*
$writer = new Laminas\Log\Writer\Stream('logs/leaderslinked.log');
$logger = new Laminas\Log\Logger();
$logger->addWriter($writer);
*/
$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) {
$adapter = $sm->get('leaders-linked-db');
//$logger = $sm->get('leaders-linked-log');
$config = $sm->get('config');
if (! isset($config['session'])) {
$sessionManager = new SessionManager();
Container::setDefaultManager($sessionManager);
return $sessionManager;
}
$session = $config['session'];
$sessionConfig = null;
if (isset($session['config'])) {
$class = isset($session['config']['class'])
? $session['config']['class']
: SessionConfig::class;
$options = isset($session['config']['options'])
? $session['config']['options']
: [];
$options['remember_me_seconds'] = 31536000; // 365 * 24 * 60 * 60
// $options['use_cookies'] = false;
$sessionConfig = new $class();
$sessionConfig->setOptions($options);
}
$sessionStorage = null;
if (isset($session['storage'])) {
$class = $session['storage'];
$sessionStorage = new $class();
}
$sessionSaveHandler = null;
if (isset($session['save_handler'])) {
// class should be fetched from service manager
// since it will require constructor arguments
$sessionSaveHandler = $sm->get($session['save_handler']);
}
$tableGateway = new TableGateway(SessionMapper::_TABLE, $adapter);
$sessionSaveHandler = new DbTableGateway($tableGateway, new DbTableGatewayOptions());
$sessionManager = new SessionManager(
$sessionConfig,
$sessionStorage,
$sessionSaveHandler
);
Container::setDefaultManager($sessionManager);
return $sessionManager;
},*/
'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);
$adapter = $sm->get('leaders-linked-db');
$logger = $sm->get('leaders-linked-log');
$saveHandler= new SessionHandler($adapter, $logger, $sessionConfig->getCookieLifetime());
$sessionManager->setSaveHandler($saveHandler);
} else {
$sessionManager = new \Laminas\Session\SessionManager();
}
\Laminas\Session\Container::setDefaultManager($sessionManager);
return $sessionManager;
},
],
'abstract_factories' => [
'Laminas\Cache\Service\StorageCacheAbstractServiceFactory',
]
],
];