Co-authored-by: Juan Pablo Vial <jpvialb@incoviba.cl>
Reviewed-on: #45
This commit is contained in:
2025-10-04 11:40:52 -03:00
parent 6ddc48ec60
commit 742de657c5
815 changed files with 62089 additions and 3287 deletions

View File

@ -5,28 +5,8 @@ use DI\Bridge\Slim\Bridge;
require_once 'composer.php';
function buildApp() {
$builder = new ContainerBuilder();
$folders = [
'settings',
'setups'
];
foreach ($folders as $folder_name) {
$folder = implode(DIRECTORY_SEPARATOR, [
__DIR__,
$folder_name
]);
if (!file_exists($folder)) {
continue;
}
$files = new FilesystemIterator($folder);
foreach ($files as $file) {
if ($file->isDir()) {
continue;
}
$builder->addDefinitions($file->getRealPath());
}
}
$app = Bridge::create($builder->build());
require_once 'container.php';
$app = Bridge::create(buildContainer());
$folder = implode(DIRECTORY_SEPARATOR, [
__DIR__,
'middlewares'

33
app/setup/container.php Normal file
View File

@ -0,0 +1,33 @@
<?php
use Psr\Container\ContainerInterface;
use DI\ContainerBuilder;
/**
* @return ContainerInterface
* @throws Exception
*/
function buildContainer(): ContainerInterface
{
$builder = new ContainerBuilder();
$folders = [
'settings',
'setups'
];
foreach ($folders as $folder_name) {
$folder = implode(DIRECTORY_SEPARATOR, [
__DIR__,
$folder_name
]);
if (!file_exists($folder)) {
continue;
}
$files = new FilesystemIterator($folder);
foreach ($files as $file) {
if ($file->isDir()) {
continue;
}
$builder->addDefinitions($file->getRealPath());
}
}
return $builder->build();
}

View File

@ -1,2 +1,2 @@
<?php
//$app->add($app->getContainer()->get(Incoviba\Middleware\Authentication::class));
$app->add($app->getContainer()->get(Incoviba\Middleware\Authentication::class));

View File

@ -1,3 +1,4 @@
<?php
$app->add($app->getContainer()->get(Incoviba\Middleware\NotFound::class));
$app->add($app->getContainer()->get(Incoviba\Middleware\NotAllowed::class));
$app->add($app->getContainer()->get(Incoviba\Middleware\Errors::class));

View File

@ -0,0 +1,2 @@
<?php
$app->add($app->getContainer()->get(Incoviba\Middleware\CORS::class));

View File

@ -0,0 +1,8 @@
<?php
use Psr\Container\ContainerInterface;
return [
DateTimeZone::class => function(ContainerInterface $container) {
return new DateTimeZone($container->get('TZ') ?? 'America/Santiago');
}
];

View File

@ -1,8 +1,10 @@
<?php
use Psr\Container\ContainerInterface;
return [
'urls' => function() {
'urls' => function(ContainerInterface $container) {
$urls = [
'base' => $_ENV['APP_URL'] ?? '',
'base' => $container->get('APP_URL') ?? '',
];
$urls['api'] = implode('/', [
$urls['base'],
@ -17,5 +19,36 @@ return [
'images'
]);
return (object) $urls;
},
'apiUrls' => function(ContainerInterface $container) {
$permittedPaths = [
'/api'
];
$simplePaths = [
'/api/login',
'/api/logout'
];
function addTrailingSlash(array &$paths): array {
foreach ($paths as $path) {
if (!in_array(rtrim($path, '/') . '/', $paths)) {
$paths[] = rtrim($path, '/') . '/';
}
}
return $paths;
}
addTrailingSlash($permittedPaths);
addTrailingSlash($simplePaths);
return [
'permittedPaths' => $permittedPaths,
'simplePaths' => $simplePaths,
'externalPaths' => [
'/api/external' => [
'/toku/success' => [
'validator' => $container->get(Incoviba\Service\Venta\MediosPago\Toku::class),
'token' => $container->get('TOKU_TOKEN'),
]
],
]
];
}
];

View File

@ -1,38 +1,155 @@
<?php
use Psr\Container\ContainerInterface;
return [
Psr\Log\LoggerInterface::class => function(ContainerInterface $container) {
return new Monolog\Logger('incoviba', [
new Monolog\Handler\FilterHandler(
(new Monolog\Handler\RotatingFileHandler('/logs/debug.log', 10))
->setFormatter(new Monolog\Formatter\LineFormatter(null, null, false, false, true)),
Monolog\Level::Debug,
Monolog\Level::Debug
),
new Monolog\Handler\FilterHandler(
(new Monolog\Handler\RotatingFileHandler('/logs/info.log', 10))
->setFormatter(new Monolog\Formatter\LineFormatter(null, null, false, false, true)),
Monolog\Level::Info,
Monolog\Level::Warning,
),
new Monolog\Handler\FilterHandler(
(new Monolog\Handler\RotatingFileHandler('/logs/error.log', 10))
->setFormatter(new Monolog\Formatter\LineFormatter(null, null, false, false, true)),
Monolog\Level::Error,
Monolog\Level::Error
),
new Monolog\Handler\FilterHandler(
(new Monolog\Handler\RotatingFileHandler('/logs/critical.log', 10))
->setFormatter(new Monolog\Formatter\LineFormatter(null, null, false, false, true)),
Monolog\Level::Critical
)
], [
$container->get(Monolog\Processor\PsrLogMessageProcessor::class),
$container->get(Monolog\Processor\WebProcessor::class),
$container->get(Monolog\Processor\IntrospectionProcessor::class),
$container->get(Monolog\Processor\MemoryUsageProcessor::class),
$container->get(Monolog\Processor\MemoryPeakUsageProcessor::class)
Monolog\Processor\WebProcessor::class => function(ContainerInterface $container) {
return new Monolog\Processor\WebProcessor(null, [
'HTTP_X_FORWARDED_FOR',
'HTTP_CLIENT_IP',
'HTTP_X_CLIENT_IP',
'HTTP_X_REAL_IP',
'REMOTE_ADDR',
'REMOTE_HOST',
]);
}
},
Monolog\Formatter\LineFormatter::class => function(ContainerInterface $container) {
return (new Monolog\Formatter\LineFormatter(null, null, false, false, true))
->setBasePath('/code/');
},
'baseMonologProcessors' => function(ContainerInterface $container) {
return [
$container->get(Monolog\Processor\IntrospectionProcessor::class),
$container->get(Monolog\Processor\WebProcessor::class),
$container->get(Monolog\Processor\MemoryUsageProcessor::class),
$container->get(Monolog\Processor\MemoryPeakUsageProcessor::class),
$container->get(Monolog\Processor\PsrLogMessageProcessor::class),
$container->get(Monolog\Processor\UidProcessor::class),
$container->get(Incoviba\Common\Implement\Log\Processor\Exception::class),
];
},
'baseDefaultHandlers' => function(ContainerInterface $container) {
return [
'critical' => [
'handler' => Monolog\Handler\RotatingFileHandler::class,
'filename' => 'critical.log',
'levels' => Monolog\Level::Critical
],
'error' => [
'handler' => Monolog\Handler\RotatingFileHandler::class,
'filename' => 'error.log',
'levels' => [Monolog\Level::Error, Monolog\Level::Error],
],
'notices' => [
'handler' => Incoviba\Common\Implement\Log\Handler\MySQL::class,
'levels' => [Monolog\Level::Notice, Monolog\Level::Warning]
],
'debug' => [
'handler' => Monolog\Handler\RedisHandler::class,
'name' => 'notices',
'levels' => [Monolog\Level::Debug, Monolog\Level::Info]
],
];
},
'developmentHandlers' => function(ContainerInterface $container) {
$baseHandlers = $container->get('baseDefaultHandlers');
$baseHandlers['critical']['handler'] = Monolog\Handler\StreamHandler::class;
$baseHandlers['error']['handler'] = Monolog\Handler\StreamHandler::class;
$baseHandlers['notices']['handler'] = Monolog\Handler\StreamHandler::class;
$baseHandlers['notices']['filename'] = 'notices.log';
$baseHandlers['debug']['handler'] = Monolog\Handler\StreamHandler::class;
$baseHandlers['debug']['filename'] = 'debug.log';
return $baseHandlers;
},
'defaultMonologHandlers' => function(ContainerInterface $container) {
$key = 'baseDefault';
if ($container->has('ENVIRONMENT') and $container->get('ENVIRONMENT') === 'development') {
$key = 'development';
if (!$container->has("{$key}Handlers")) {
$key = 'baseDefault';
}
}
$baseHandlers = $container->get("{$key}Handlers");
$builder = $container->get(Incoviba\Common\Implement\Log\Processor\ArrayBuilder::class);
return $builder->build($baseHandlers);
},
Psr\Log\LoggerInterface::class => function(ContainerInterface $container) {
return new Monolog\Logger('incoviba',
$container->get('defaultMonologHandlers'),
[$container->get(Incoviba\Common\Implement\Log\Processor\User::class)]
+ $container->get('baseMonologProcessors'),
$container->get(DateTimeZone::class)
);
},
'jsonHandlers' => function(ContainerInterface $container) {
$baseHandlers = $container->get('baseDefaultHandlers');
$baseHandlers['debug']['handler'] = Monolog\Handler\RotatingFileHandler::class;
$baseHandlers['debug']['filename'] = 'info.json';
$baseHandlers['debug']['formatter'] = Monolog\Formatter\JsonFormatter::class;
$baseHandlers['notices']['handler'] = Monolog\Handler\RotatingFileHandler::class;
$baseHandlers['notices']['filename'] = 'notices.json';
$baseHandlers['notices']['formatter'] = Monolog\Formatter\JsonFormatter::class;
return $baseHandlers;
},
'jsonLogger' => function(ContainerInterface $container) {
$builder = $container->get(Incoviba\Common\Implement\Log\Processor\ArrayBuilder::class);
$handlers = $builder->build($container->get('jsonHandlers'));
return new Monolog\Logger('json',
$handlers,
[$container->get(Incoviba\Common\Implement\Log\Processor\User::class)]
+ $container->get('baseMonologProcessors'),
$container->get(DateTimeZone::class)
);
},
'loginLogger' => function(ContainerInterface $container) {
return new Monolog\Logger('login',
[
new Monolog\Handler\RedisHandler($container->get(Predis\ClientInterface::class), 'logs:login'),
],
$container->get('baseMonologProcessors'),
$container->get(DateTimeZone::class)
);
},
'accessLogger' => function(ContainerInterface $container) {
return new Monolog\Logger('access',
[
new Monolog\Handler\RedisHandler($container->get(Predis\ClientInterface::class), 'logs:access'),
],
$container->get('baseMonologProcessors'),
$container->get(DateTimeZone::class)
);
},
'externalHandlers' => function(ContainerInterface $container) {
return [
'critical' => [
'handler' => Monolog\Handler\RedisHandler::class,
'name' => 'external:critical',
'levels' => Monolog\Level::Critical
],
'error' => [
'handler' => Monolog\Handler\RedisHandler::class,
'name' => 'external:error',
'levels' => [Monolog\Level::Error, Monolog\Level::Error],
],
'notices' => [
'handler' => Monolog\Handler\RedisHandler::class,
'name' => 'external:notices',
'levels' => [Monolog\Level::Notice, Monolog\Level::Warning],
],
'debug' => [
'handler' => Monolog\Handler\RedisHandler::class,
'name' => 'external:debug',
'levels' => [Monolog\Level::Debug, Monolog\Level::Info],
],
];
},
'externalLogger' => function(ContainerInterface $container) {
$builder = $container->get(Incoviba\Common\Implement\Log\Processor\ArrayBuilder::class);
$handlers = $builder->build($container->get('externalHandlers'));
return new Monolog\Logger('external',
$handlers,
$container->get('baseMonologProcessors'),
$container->get(DateTimeZone::class)
);
},
];

View File

@ -6,7 +6,7 @@ return [
return new Incoviba\Middleware\Authentication(
$container->get(Psr\Http\Message\ResponseFactoryInterface::class),
$container->get(Incoviba\Service\Login::class),
$container->get(Psr\Log\LoggerInterface::class),
$container->get('loginLogger'),
$container->get(Incoviba\Common\Alias\View::class),
implode('/', [$container->get('APP_URL'), 'login'])
);
@ -14,7 +14,25 @@ return [
Incoviba\Middleware\API::class => function(ContainerInterface $container) {
return new Incoviba\Middleware\API(
$container->get(Psr\Http\Message\ResponseFactoryInterface::class),
$container->get('API_KEY')
$container->get(Psr\Log\LoggerInterface::class),
$container->get(Incoviba\Service\API::class),
$container->get(Incoviba\Service\Login::class),
$container->get('API_KEY'),
$container->get('apiUrls'),
);
},
Incoviba\Middleware\NotFound::class => function(ContainerInterface $container) {
return new Incoviba\Middleware\NotFound(
$container->get('accessLogger'),
$container->get(Psr\Http\Message\ResponseFactoryInterface::class),
$container->get(Incoviba\Common\Alias\View::class)
);
},
Incoviba\Middleware\NotAllowed::class => function(ContainerInterface $container) {
return new Incoviba\Middleware\NotAllowed(
$container->get('accessLogger'),
$container->get(Psr\Http\Message\ResponseFactoryInterface::class),
$container->get(Incoviba\Common\Alias\View::class)
);
}
];

View File

@ -6,10 +6,12 @@ return [
Incoviba\Service\Login::class => function(ContainerInterface $container) {
return new Incoviba\Service\Login(
$container->get(Incoviba\Repository\Login::class),
$container->get(Incoviba\Repository\User::class),
$container->get('COOKIE_NAME'),
$container->get('MAX_LOGIN_HOURS'),
$container->has('COOKIE_DOMAIN') ? $container->get('COOKIE_DOMAIN') : '',
$container->has('COOKIE_PATH') ? $container->get('COOKIE_PATH') : ''
$container->has('COOKIE_PATH') ? $container->get('COOKIE_PATH') : '',
$container->has('COOKIE_SEPARATOR') ? $container->get('COOKIE_SEPARATOR') : 'g'
);
},
Incoviba\Service\Money::class => function(ContainerInterface $container) {
@ -20,46 +22,69 @@ return [
$ine = new Incoviba\Service\Money\Ine(new GuzzleHttp\Client([
'base_uri' => 'https://api-calculadora.ine.cl/ServiciosCalculadoraVariacion'
]));
$sii = new Incoviba\Service\Money\SII(new GuzzleHttp\Client([
'base_uri' => 'https://www.sii.cl/valores_y_fechas/'
]), $container->get(Incoviba\Repository\UF::class));
return (new Incoviba\Service\Money($container->get(Psr\Log\LoggerInterface::class)))
->register('uf', $mindicador)
->register('uf', $sii)
->register('usd', $mindicador)
->register('ipc', $ine);
},
Predis\Client::class => function(ContainerInterface $container) {
return new Predis\Client([
Predis\ClientInterface::class => function(ContainerInterface $container) {
$options = [
'scheme' => 'tcp',
'host' => $container->get('REDIS_HOST'),
'port' => $container->get('REDIS_PORT')
]);
];
if ($container->has('REDIS_USER')) {
$options['username'] = $container->get('REDIS_USER');
}
if ($container->has('REDIS_PASSWORD')) {
$options['password'] = $container->get('REDIS_PASSWORD');
}
return new Predis\Client($options);
},
Incoviba\Service\Cartola::class => function(ContainerInterface $container) {
return (new Incoviba\Service\Cartola(
Incoviba\Service\Contabilidad\Cartola::class => function(ContainerInterface $container) {
return (new Incoviba\Service\Contabilidad\Cartola(
$container->get(Psr\Log\LoggerInterface::class),
$container->get(Psr\Http\Message\StreamFactoryInterface::class),
$container->get(Incoviba\Common\Define\Contabilidad\Exporter::class),
$container->get(Incoviba\Repository\Inmobiliaria::class),
$container->get(Incoviba\Repository\Inmobiliaria\Cuenta::class),
$container->get(Incoviba\Repository\Movimiento::class),
$container->get(Incoviba\Service\Movimiento::class),
$container->get(Incoviba\Repository\Cartola::class)
$container->get(Incoviba\Repository\Contabilidad\Movimiento::class),
$container->get(Incoviba\Service\Contabilidad\Movimiento::class),
$container->get(Incoviba\Repository\Contabilidad\Cartola::class)
))
->register('security', $container->get(Incoviba\Service\Cartola\Security::class))
->register('itau', $container->get(Incoviba\Service\Cartola\Itau::class))
->register('santander', $container->get(Incoviba\Service\Cartola\Santander::class));
->register('security', $container->get(Incoviba\Service\Contabilidad\Cartola\Security::class))
->register('itau', $container->get(Incoviba\Service\Contabilidad\Cartola\Itau::class))
->register('santander', $container->get(Incoviba\Service\Contabilidad\Cartola\Santander::class))
->register('bci', $container->get(Incoviba\Service\Contabilidad\Cartola\BCI::class));
},
Incoviba\Common\Define\Contabilidad\Exporter::class => function(ContainerInterface $container) {
return $container->get(Incoviba\Service\Contabilidad\Exporter\Nubox::class);
},
Incoviba\Service\Contabilidad\Exporter\Nubox::class => function(ContainerInterface $container) {
return new Incoviba\Service\Contabilidad\Exporter\Nubox($container->get(Incoviba\Repository\CentroCosto::class),
return new Incoviba\Service\Contabilidad\Exporter\Nubox($container->get(Incoviba\Repository\Contabilidad\CentroCosto::class),
$container->get('folders')->get('uploads'));
},
Incoviba\Service\Contabilidad\Nubox::class => function(ContainerInterface $container) {
return new Incoviba\Service\Contabilidad\Nubox(
$container->get(Psr\Log\LoggerInterface::class),
$container->get(Incoviba\Repository\Nubox::class),
$container->get(Incoviba\Repository\Contabilidad\Nubox::class),
$container->get(Incoviba\Service\Redis::class),
new GuzzleHttp\Client(),
new GuzzleHttp\Client([
'defaults' => [
'config' => [
'curl' => [
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1_3
],
'verify' => false
]
],
]),
$container->get(Psr\Http\Message\RequestFactoryInterface::class),
$container->get('nubox')->get('url'));
},
@ -70,12 +95,139 @@ return [
)
->register('xlsx', Incoviba\Service\Informe\Excel::class);
},
Incoviba\Service\Contabilidad\Informe\Tesoreria\Excel::class => function(ContainerInterface $container) {
return new Incoviba\Service\Contabilidad\Informe\Tesoreria\Excel(
Incoviba\Service\Contabilidad\Informe\Tesoreria\Output\Excel::class => function(ContainerInterface $container) {
return new Incoviba\Service\Contabilidad\Informe\Tesoreria\Output\Excel(
$container->get(Psr\Log\LoggerInterface::class),
$container->get('folders')->get('informes'),
$container->get(Incoviba\Service\UF::class),
$container->get(Incoviba\Service\USD::class)
);
},
Incoviba\Service\Contabilidad\Cartola\Santander::class => function(ContainerInterface $container) {
return (new Incoviba\Service\Contabilidad\Cartola\Santander(
$container->get(Psr\Log\LoggerInterface::class),
))
->registerSub($container->get(Incoviba\Service\Contabilidad\Cartola\Santander\OfficeBanking::class));
},
Incoviba\Service\Contabilidad\Cartola\BCI::class => function(ContainerInterface $container) {
return (new Incoviba\Service\Contabilidad\Cartola\BCI(
$container->get(Psr\Log\LoggerInterface::class),
))
->registerSub($container->get(Incoviba\Service\Contabilidad\Cartola\BCI\Mes::class));
},
'TokuClient' => function(ContainerInterface $container) {
$logger = $container->get('externalLogger');
$stack = GuzzleHttp\HandlerStack::create();
$stack->push(GuzzleHttp\Middleware::mapRequest(function(Psr\Http\Message\RequestInterface $request) use ($logger) {
$logger->info('Toku Request', [
'method' => $request->getMethod(),
'uri' => (string) $request->getUri(),
'headers' => $request->getHeaders(),
'body' => $request->getBody()->getContents(),
]);
return $request;
}));
return new GuzzleHttp\Client([
'handler' => $stack,
'base_uri' => $container->get('TOKU_URL'),
'headers' => [
'x-api-key' => $container->get('TOKU_TOKEN'),
'accept' => 'application/json'
]
]);
},
Incoviba\Service\Venta\MediosPago\Toku\Customer::class => function(ContainerInterface $container) {
$service = new Incoviba\Service\Venta\MediosPago\Toku\Customer(
$container->get('TokuClient'),
$container->get(Incoviba\Repository\Venta\MediosPago\Toku\Customer::class)
);
$service->setLogger($container->get('externalLogger'));
return $service;
},
Incoviba\Service\Venta\MediosPago\Toku\Subscription::class => function(ContainerInterface $container) {
$service = new Incoviba\Service\Venta\MediosPago\Toku\Subscription(
$container->get('TokuClient'),
$container->get(Incoviba\Repository\Venta\MediosPago\Toku\Subscription::class),
$container->get(Incoviba\Service\Venta::class)
);
$service->setLogger($container->get('externalLogger'));
return $service;
},
Incoviba\Service\Venta\MediosPago\Toku\Invoice::class => function(ContainerInterface $container) {
$service = new Incoviba\Service\Venta\MediosPago\Toku\Invoice(
$container->get('TokuClient'),
$container->get(Incoviba\Repository\Venta\MediosPago\Toku\Invoice::class),
$container->get(Incoviba\Service\Venta\Pago::class),
$container->get(Incoviba\Service\UF::class)
);
$service->setLogger($container->get('externalLogger'));
$service->setAltLogger($container->get('jsonLogger'));
return $service;
},
Incoviba\Service\Venta\MediosPago\Toku::class => function(ContainerInterface $container) {
return new Incoviba\Service\Venta\MediosPago\Toku(
$container->get('externalLogger'),
$container->get(Incoviba\Common\Define\Connection::class),
$container->get(Incoviba\Service\HMAC::class)
)
->register('customer', $container->get(Incoviba\Service\Venta\MediosPago\Toku\Customer::class))
->register('subscription', $container->get(Incoviba\Service\Venta\MediosPago\Toku\Subscription::class))
->register('invoice', $container->get(Incoviba\Service\Venta\MediosPago\Toku\Invoice::class));
},
Pheanstalk\Pheanstalk::class => function(ContainerInterface $container) {
return Pheanstalk\Pheanstalk::create(
$container->get('BEANSTALKD_HOST'),
$container->has('BEANSTALKD_PORT') ? $container->get('BEANSTALKD_PORT') : 11300
);
},
Incoviba\Service\MQTT::class => function(ContainerInterface $container) {
return new Incoviba\Service\MQTT()
->register('default', $container->get(Incoviba\Service\MQTT\Pheanstalk::class));
},
Incoviba\Service\Queue::class => function(ContainerInterface $container) {
return new Incoviba\Service\Queue(
$container->get(Psr\Log\LoggerInterface::class),
$container->get(Incoviba\Service\Job::class),
$container->get(Incoviba\Service\Worker\Request::class)
)
->register('request', $container->get(Incoviba\Service\Worker\Request::class))
->register('service', $container->get(Incoviba\Service\Worker\Service::class))
->register('dummy', $container->get(Incoviba\Service\Worker\Dummy::class))
->register('checkExternal', $container->get(Incoviba\Service\Worker\CheckExternal::class));
},
Incoviba\Service\Worker\Request::class => function(ContainerInterface $container) {
$apiKey = md5($container->get('API_KEY'));
$key = $apiKey;
$loginService = $container->get(Incoviba\Service\Login::class);
if ($loginService->isIn()) {
$token = $loginService->getToken();
$key = "{$apiKey}{$loginService->getSeparator()}{$token}";
}
return new Incoviba\Service\Worker\Request(
$container->get(Psr\Log\LoggerInterface::class),
new GuzzleHttp\Client([
'base_uri' => 'http://incoviba_proxy/api',
'headers' => [
'Authorization' => "Bearer {$key}"
]
])
);
},
Incoviba\Service\Worker\CheckExternal::class => function(ContainerInterface $container) {
return new Incoviba\Service\Worker\CheckExternal(
$container->get('externalLogger'),
$container
);
},
Incoviba\Service\External::class => function(ContainerInterface $container) {
return new Incoviba\Service\External(
$container->get('externalLogger'),
$container->get(Incoviba\Service\Queue::class)
)
->register($container->get(Incoviba\Service\Venta\MediosPago\Toku::class));
},
Incoviba\Service\FileUpload::class => function(ContainerInterface $container) {
return new Incoviba\Service\FileUpload($container->get(Psr\Log\LoggerInterface::class))
->register($container->get(Incoviba\Service\FileUpload\ExcelBase::class));
}
];

View File

@ -18,11 +18,11 @@ return [
if ($global_variables['login']->isIn()) {
$global_variables['user'] = $global_variables['login']->getUser();
}
return new Incoviba\Common\Alias\View(
return (new Incoviba\Common\Alias\View(
$folders->get('templates'),
$folders->get('cache'),
null,
$global_variables
);
));#->setOfuscator($container->get(Incoviba\Service\Ofuscator::class));
}
];