Files
molenda.net/app/dependencies.php
2026-05-13 22:43:29 +02:00

42 lines
1.4 KiB
PHP

<?php
declare(strict_types=1);
use App\Application\Settings\SettingsInterface;
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 = $c->get(SettingsInterface::class);
$loggerSettings = $settings->get('logger');
$logger = new Logger($loggerSettings['name']);
$processor = new UidProcessor();
$logger->pushProcessor($processor);
$handler = new StreamHandler($loggerSettings['path'], $loggerSettings['level']);
$logger->pushHandler($handler);
return $logger;
},
PDO::class => function () {
$dbPath = __DIR__ . '/../data.sqlite3';
$pdo = new PDO('sqlite:' . $dbPath);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $pdo;
},
\Twig\Environment::class => function () {
$loader = new \Twig\Loader\FilesystemLoader(__DIR__ . '/../templates');
return new \Twig\Environment($loader);
},
\App\Application\Services\BlogProvider::class => \DI\autowire(\App\Application\Services\BlogProvider::class),
]);
};