Перейти к содержанию

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