54 lines
2.1 KiB
PHP
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)
|
|
);
|
|
}
|
|
];
|