Skip to content

Repository files navigation

Switon Invocation Package

CIPHP 8.3+

Switon's invocation hook contracts for method-level guards and interceptors.

This package defines the attributes and hook contracts; Invoker executes them at runtime.

Highlights

  • Attribute-based hooks: guards and interceptors attach behavior directly to methods.
  • Pre-execution checks: guarded methods can be examined before they run.
  • Around-call wrapping: interceptors can run before, after, or on exception.
  • Reusable base hook:Interceptor covers the common partial-lifecycle case.
  • Reusable invocation path: other components can share the same call flow.

Installation

composer require switon/invocation

Quick Start

useAttribute;
useReflectionMethod;
useSwiton\Invocation\Attribute\GuardInterface;
useSwiton\Http\Exception\ForbiddenException;
useSwiton\Http\RequestInterface;
#[Attribute(Attribute::TARGET_METHOD)]
finalclass IpGuard implements GuardInterface
{
publicfunction__construct(
privatearray$ips,
) {
}
publicfunctionhandle(RequestInterface$request, ReflectionMethod$method): void
{
if (!in_array($request->ip(), $this->ips, true)) {
throw ForbiddenException::of('Access denied.');
}
}
}
finalclass AccountService
{
#[IpGuard(['127.0.0.1'])]
publicfunctiondeleteAction(int$id): void
{
}
}

Docs: https://docs.switon.dev/latest/invocation

License

MIT.

About

Method-level guard and interceptor contracts for managed invocations for Switon Framework

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages