53 lines
1.7 KiB
PHP
53 lines
1.7 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use App\Api\PasswordController;
|
|
use App\Managers\PasswordGeneratorManager;
|
|
use App\Utils\ResponseHelper;
|
|
use App\Utils\SecurityConfig;
|
|
use DI\ContainerBuilder;
|
|
use Monolog\Handler\StreamHandler;
|
|
use Monolog\Logger;
|
|
use Monolog\Processor\UidProcessor;
|
|
use Psr\Container\ContainerInterface;
|
|
use Psr\Log\LoggerInterface;
|
|
|
|
return function (ContainerBuilder $containerBuilder) {
|
|
$containerBuilder->addDefinitions([
|
|
LoggerInterface::class => function (ContainerInterface $c) {
|
|
$settings = [
|
|
'name' => $_ENV['APP_NAME'] ?? 'password-generator',
|
|
'path' => __DIR__ . '/../' . ($_ENV['LOG_PATH'] ?? 'logs/app.log'),
|
|
'level' => SecurityConfig::resolveLogLevel($_ENV['LOG_LEVEL'] ?? 'warning'),
|
|
];
|
|
|
|
$logger = new Logger($settings['name']);
|
|
|
|
$processor = new UidProcessor();
|
|
$logger->pushProcessor($processor);
|
|
|
|
$handler = new StreamHandler($settings['path'], $settings['level']);
|
|
$logger->pushHandler($handler);
|
|
|
|
return $logger;
|
|
},
|
|
|
|
ResponseHelper::class => function (ContainerInterface $c) {
|
|
return new ResponseHelper();
|
|
},
|
|
|
|
PasswordGeneratorManager::class => function (ContainerInterface $c) {
|
|
return new PasswordGeneratorManager();
|
|
},
|
|
|
|
PasswordController::class => function (ContainerInterface $c) {
|
|
return new PasswordController(
|
|
$c->get(PasswordGeneratorManager::class),
|
|
$c->get(ResponseHelper::class),
|
|
$c->get(LoggerInterface::class)
|
|
);
|
|
},
|
|
]);
|
|
};
|