'onMedia', * ]; * * public function onMedia(MediaRequested $event): void * { * $event->processor('image', ImageProcessor::class); * $event->processor('video', VideoProcessor::class); * } * ``` */ class MediaRequested extends LifecycleEvent { /** @var array Collected processor registrations [type => class] */ protected array $processorRequests = []; /** * Register a media processor for a specific type. * * @param string $type Media type (e.g., 'image', 'video', 'audio') * @param string $class Fully qualified processor class name */ public function processor(string $type, string $class): void { $this->processorRequests[$type] = $class; } /** * Get all registered processors. * * @return array [type => class] * * @internal Used by media system */ public function processorRequests(): array { return $this->processorRequests; } }