refactor: introduce DI container (#4238)

* refactor: introduce DI container

* add bin/test
This commit is contained in:
Dag 2024-08-29 22:48:59 +02:00 committed by GitHub
parent e010fd4d52
commit 58544cd61a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
18 changed files with 231 additions and 89 deletions

View file

@ -17,7 +17,9 @@ if (file_exists(__DIR__ . '/config.ini.php')) {
}
Configuration::loadConfiguration($config, getenv());
$logger = new SimpleLogger('rssbridge');
$container = require __DIR__ . '/lib/dependencies.php';
$logger = $container['logger'];
set_exception_handler(function (\Throwable $e) use ($logger) {
$response = new Response(render(__DIR__ . '/templates/exception.html.php', ['e' => $e]), 500);
@ -60,23 +62,6 @@ register_shutdown_function(function () use ($logger) {
}
});
$cacheFactory = new CacheFactory($logger);
// Uncomment this for info logging to fs
// $logger->addHandler(new StreamHandler('/tmp/rss-bridge.txt', Logger::INFO));
// Uncomment this for debug logging to fs
// $logger->addHandler(new StreamHandler('/tmp/rss-bridge-debug.txt', Logger::DEBUG));
if (Debug::isEnabled()) {
$logger->addHandler(new ErrorLogHandler(Logger::DEBUG));
$cache = $cacheFactory->create('array');
} else {
$logger->addHandler(new ErrorLogHandler(Logger::INFO));
$cache = $cacheFactory->create();
}
$httpClient = new CurlHttpClient();
date_default_timezone_set(Configuration::getConfig('system', 'timezone'));
$argv = $argv ?? null;
@ -88,7 +73,7 @@ if ($argv) {
}
try {
$rssBridge = new RssBridge($logger, $cache, $httpClient);
$rssBridge = new RssBridge($container);
$response = $rssBridge->main($request);
$response->send();
} catch (\Throwable $e) {