Switon's invoker layer that implements Switon\Invoking\InvokerInterface on top of Switon\Di\InvokerInterface, adding
guard attributes and interceptors.
- One invocation entrypoint: callables, closures, and invokable objects all share the same path.
- Flexible argument matching: position, name, type, and defaults can be combined.
- Guard support: method guards can run before the target callable.
- Interceptor support: pre, post, and exception handling can wrap the call.
- Built on DI: the layer sits on top of the container invoker used by the framework.
composer require switon/invokeruse Switon\Core\Attribute\Autowired;
use Switon\Invoking\InvokerInterface;
class RequestHandler
{
#[Autowired] protected InvokerInterface $invoker;
public function handle(object $controller, string $action, array $routeParams): mixed
{
return $this->invoker->invoke([$controller, $action], $routeParams);
}
}Docs: https://docs.switon.dev/latest/invoker
MIT.