<?php

namespace xmvc\event\subscriber;

use xmvc\interface\IEventSubscriber;
use xmvc\event\MetaDeleteEvent;
use xmvc\event\MetaInsertEvent;
use xmvc\event\MetaUpdateEvent;

/**
 * 元数据变化 - 事件订阅者
 */
class MetaDataSubscriber2 implements IEventSubscriber
{
    private static int $priority = 2;
    public static function getSubscribedEvents(): array
    {
        return [
            MetaInsertEvent::class => ['onInsert', self::$priority],
            MetaUpdateEvent::class => ['onUpdate', self::$priority],
            MetaDeleteEvent::class => ['onDelete', self::$priority],
        ];
    }

    public function onInsert(MetaInsertEvent $event)
    {
        // handle the event
    }

    public function onUpdate(MetaUpdateEvent $event)
    {
        $event->setSharedData(['abc' => 123456]);
        dump('MetaDataSubscriber2.onUpdate');
    }

    public function onDelete(MetaDeleteEvent $event)
    {
        // handle the event
    }
}
