EventRouterFactory¶
Создаёт роутер — аналог AppFactory в Slim. Единственное место,
где части роутера создаются и связываются друг с другом.
$events = EventRouterFactory::create($container, [
'log_path' => '/var/www/local/logs/events-router/{level}/{date}.log',
'log_dispatch' => true,
'route_cache_file' => '/var/www/local/var/cache/events-routes.php', // в проде
'locale' => 'en',
]);
$events->loadRoutes(require __DIR__ . '/events.php');
- Full name:
\Selyusize\EventsRouter\EventRouterFactory - This class is marked as final and can't be subclassed
- This class is a Final class
Methods¶
create¶
public static create(\Psr\Container\ContainerInterface|null $container = null, array<string,mixed> $config = []): \Selyusize\EventsRouter\EventRouter
- This method is static. Parameters:
| Parameter | Type | Description |
|---|---|---|
$container |
\Psr\Container\ContainerInterface|null | контейнер проекта: из него создаются middleware, |
| указанные именем класса, и его же отдаёт Container::get(). | ||
| Без него — PHP-DI с автосвязыванием. | ||
$config |
array |
настройки роутера: |
- log_path — шаблон пути к файлу лога с подстановками {date} и {level}, |
||
по умолчанию <временная папка>/events-router/{date}.log |
||
- log_dispatch — писать в лог каждую рассылку: событие, атрибуты, |
||
слушателей со статусом и временем; по умолчанию false |
||
- route_cache_file — PHP-файл кэша маршрутов для loadRoutes(); |
||
| по умолчанию кэша нет | ||
- locale — язык исключений и лога: ru или en, по умолчанию ru. |
||
| Общий на процесс: действует и на события, созданные после этого вызова; | ||
| без ключа язык не меняется |
Throws:
если в конфиге неизвестный ключ или значение не того типа
- InvalidConfig