Skip to content

PluginInterface

A Quiote plugin: a self-contained bundle that contributes to the framework through the seams that already exist (config defaults, DI services, middleware, event listeners, routes/modules, output types, commands, HTTP clients) via a single PluginInterface::register() lifecycle call — this is the mechanism the framework’s “unopinionated core + opinionated drop-ins” philosophy is built on.

Plugins are registered either programmatically (PluginManager::add() before bootstrap) or declaratively via the plugins config key (a list of plugin class-strings), and PluginInterface::register() is invoked once during Quiote::bootstrap() — after settings load, before contexts are created — in deterministic order.

A diagnostics/logging name for the plugin comes from either Plugin’s name argument or, for a plugin whose name can’t be a compile-time constant, from implementing NamedPlugin instead — see PluginManager for how the two are resolved.

interface PluginInterface

Implemented byCyclePlugin, DoctrinePlugin, EloquentPlugin, PropulsionPlugin, WhoopsPlugin, AzureFilesystemPlugin, FilesystemPlugin, GcsFilesystemPlugin, S3FilesystemPlugin, McpPlugin, NamedPlugin, QueueDbPlugin, QueuePlugin, QueueRedisPlugin, ReplayCyclePlugin, ReplayDoctrinePlugin, ReplayEloquentPlugin, ReplayPropulsionPlugin, ReplayPlugin, ReplayAzurePlugin, ReplayPdoPlugin, WorkerRoadRunnerPlugin, WorkerSwoolePlugin, SchedulerPlugin, AuthPlugin, JwtAuthPlugin, CorsPlugin, CsrfPlugin, SecurityHeadersPlugin, RateLimitPlugin, TelemetryPlugin
SourcePlugin/PluginInterface.php
MethodDescription
register(PluginRegistrar $registrar): voidContribute to the framework.

abstract public function register(PluginRegistrar $registrar): void

Contribute to the framework.

Called exactly once at boot. Every contribution routes through PluginRegistrar to an existing seam; a plugin does not touch framework internals directly.

ParameterTypeDescription
$registrarPluginRegistrar