switon/invoker

Guard-aware and intercepted method invocation on top of the DI invoker for Switon Framework

Maintainers

Package info

github.com/switon-php/invoker

Documentation

pkg:composer/switon/invoker

Statistics

Installs: 30

Dependents: 5

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-06-06 13:43 UTC

This package is auto-updated.

Last update: 2026-06-07 03:14:55 UTC


README

CI PHP 8.3+

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.