Anything the driver needs.
OptionaldriverWhich driver builds it. Defaults to log, and ignored when factory is given.
OptionalfactoryBuild the channel yourself, instead of naming a driver this package ships.
This is how an application reaches a provider nobody here has heard of, and how sms and push
are done: they are named in the types and not implemented, because a channel that picked a vendor
would be wrong for everyone who chose a different one.
It is declared here, with the other channels, rather than registered on the manager from a provider: the container is rebuilt for every event, so anything registered imperatively during one event is gone for the next.
OptionalmoduleA class the container builds into a channel.
What @NotificationChannel('sms') declares. Built through the container, so the channel's
constructor is auto-wired like any other service and can ask for whatever it needs.
The name it is resolved under.
What a configured channel declares.