Register Logger
This commit is contained in:
@@ -41,8 +41,10 @@ ContainerFactory::build(Environment $env, Config $config, string $basePath): Con
|
||||
|
||||
- Autowiring включён всегда
|
||||
- В prod: `$builder->enableCompilation($basePath . '/var/cache/prod/')`
|
||||
- Автоматически регистрирует `Config::class` и `Environment::class` в контейнере — любой класс
|
||||
может получить их через DI без ручного биндинга в `services.php`
|
||||
- Автоматически регистрирует `Config::class`, `Environment::class` и `LoggerInterface::class`
|
||||
в контейнере — любой класс может получить их через DI без ручного биндинга в `services.php`
|
||||
- `LoggerInterface` по умолчанию резолвится в `CompositeLogger([StdoutLogger])`;
|
||||
если задан `log.file` — добавляется `FileLogger`
|
||||
- Загружает `$basePath/config/routes.php` (если есть) — файл возвращает `RouteDefinition[]`,
|
||||
фреймворк автоматически создаёт `Router` и регистрирует его в контейнере
|
||||
- Загружает `$basePath/config/services.php` (если есть) — файл возвращает
|
||||
|
||||
@@ -5,6 +5,10 @@ namespace Pronchev\Pinecore;
|
||||
use DI\Container;
|
||||
use DI\ContainerBuilder;
|
||||
use Pronchev\Pinecore\Http\Router;
|
||||
use Pronchev\Pinecore\Log\CompositeLogger;
|
||||
use Pronchev\Pinecore\Log\FileLogger;
|
||||
use Pronchev\Pinecore\Log\StdoutLogger;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
class ContainerFactory
|
||||
{
|
||||
@@ -25,6 +29,13 @@ class ContainerFactory
|
||||
$builder->addDefinitions([
|
||||
Config::class => $config,
|
||||
Environment::class => $env,
|
||||
LoggerInterface::class => function ($c) use ($config) {
|
||||
$loggers = [$c->get(StdoutLogger::class)];
|
||||
if ($config->get('log.file')) {
|
||||
$loggers[] = $c->get(FileLogger::class);
|
||||
}
|
||||
return new CompositeLogger($loggers);
|
||||
},
|
||||
]);
|
||||
|
||||
$routesFile = $basePath . '/config/routes.php';
|
||||
|
||||
Reference in New Issue
Block a user