switon / invoker
Guard-aware and intercepted method invocation on top of the DI invoker for Switon Framework
v1.0.0
2026-06-06 13:43 UTC
Requires
- php: >=8.3
- switon/core: ^1.0
- switon/di: ^1.0
- switon/invocation: ^1.0
Requires (Dev)
- phpstan/extension-installer: ^1.4
- phpstan/phpstan: ^2.0
- switon/binding: ^1.0
- switon/testing: ^1.0
README
Switon's invoker layer that implements Switon\Invoking\InvokerInterface on top of Switon\Di\InvokerInterface, adding
guard attributes and interceptors.
Highlights
- 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.
Installation
composer require switon/invoker
Quick Start
use 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
License
MIT.