Yii event is the first framework-specific package from Yii 3 family. Its goal is to make configuring events convenient. For the applications it provides three main config files:
events.php- Common event handlers for web and console.
events-web.php- Web event handlers.
events-console.php- Console event handlers.
The config syntax is the following:
return [ EventName::class => [ // Just a regular closure, it will be called from the Dispatcher "as is". static fn (EventName $event) => someStuff($event), // A regular closure with additional dependency. All the parameters after the first one (the event itself) // will be resolved from your DI container within `yiisoft/injector`. static fn (EventName $event, DependencyClass $dependency) => someStuff($event), // An example with a regular callable. If the `staticMethodName` method contains some dependencies, // they will be resolved the same way as in the previous example. [SomeClass::class, 'staticMethodName'], // Non-static methods are allowed too. In this case `SomeClass` will be instantiated by your DI container. [SomeClass::class, 'methodName'], // An object of a class with the `__invoke` method implemented new InvokableClass(), // In this case the `InvokableClass` with the `__invoke` method will be instantiated by your DI container InvokableClass::class, // Any definition of an invokable class may be here while your `$container->has('the definition)` 'di-alias' ], ];
For convenience, there's a configuration checker that is used in current application templates to check if all handlers declared are correct.