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