Files
remote_ip/app/setup/setups/services.php
2023-06-18 19:20:06 -04:00

54 lines
2.1 KiB
PHP

<?php
use Psr\Container\ContainerInterface;
return [
Psr\Log\LoggerInterface::class => function(ContainerInterface $container) {
return new Monolog\Logger('file', [
new Monolog\Handler\FilterHandler(
new Monolog\Handler\RotatingFileHandler($container->get('debug_logs_file')),
Monolog\Level::Debug,
Monolog\Level::Warning
),
new Monolog\Handler\FilterHandler(
new Monolog\Handler\RotatingFileHandler($container->get('error_logs_file')),
Monolog\Level::Error
)
], [
new Monolog\Processor\PsrLogMessageProcessor(),
new Monolog\Processor\IntrospectionProcessor(),
new Monolog\Processor\MemoryUsageProcessor(),
new Monolog\Processor\MemoryPeakUsageProcessor(),
]);
},
Psr\Http\Client\ClientInterface::class => function(ContainerInterface $container) {
return new GuzzleHttp\Client([
'base_uri' => $container->get('uri')
]);
},
ProVM\Service\Ipify::class => function(ContainerInterface $container) {
return new ProVM\Service\Ipify(
$container->get(Psr\Http\Client\ClientInterface::class),
$container->get('uri'),
$container->get(Psr\Log\LoggerInterface::class)
);
},
ProVM\Service\Connector::class => function(ContainerInterface $container) {
$database = $container->get('database');
return new ProVM\Service\Connector(
$database->get('host'),
$database->get('name'),
$database->get('user')->get('name'),
$database->get('user')->get('password'),
$container->get('retries'),
$container->get(Psr\Log\LoggerInterface::class)
);
},
ProVM\Service\Repository::class => function(ContainerInterface $container) {
return new ProVM\Service\Repository(
$container->get(ProVM\Service\Connector::class),
$container->get('database')->get('table'),
$container->get(Psr\Log\LoggerInterface::class)
);
}
];