Skip to content

Instantly share code, notes, and snippets.

@ostark
Created September 27, 2018 16:56
Show Gist options
  • Select an option

  • Save ostark/d83a00f689994c5515c10a4f1531ade0 to your computer and use it in GitHub Desktop.

Select an option

Save ostark/d83a00f689994c5515c10a4f1531ade0 to your computer and use it in GitHub Desktop.

Revisions

  1. Oliver Stark created this gist Sep 27, 2018.
    33 changes: 33 additions & 0 deletions EventCatcher.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,33 @@
    class EventCatcher
    {

    /**
    * @var array
    */
    protected $classConstants = [];

    public function __invoke(yii\base\Event $event)
    {
    $triggerClass = get_class($event->sender);
    $eventClass = get_class($event);
    $name = $this->getEventConstantName($triggerClass, $event->name);
    \Craft::warning("$triggerClass::$name using ($eventClass)", 'event');
    }

    protected function getEventConstantName(string $class, string $name): string
    {

    if (!isset($this->classConstants[$class])) {
    $info = new ReflectionClass($class);
    $this->classConstants[$class] = $info->getConstants();
    }

    foreach ($this->classConstants[$class] as $k => $v) {
    if ($v === $name) {
    return $k;
    }
    }

    return $name;
    }
    }