php框架Minor5事件(附代码)

PHPz
Libérer: 2018-10-12 09:31:35
original
1247 Les gens l'ont consulté

5.1 事件Event

  Minor的 Event 类提供一个简单的观察者实现,允许您在应用程序里订阅与监听事件。

5.1.1 订阅事件

  首先创建一个事件类:

<?php

namespace App\Event;use Minor\Event\Event;class DemoEvent extends Event
{private$name;publicfunction __construct($name)
    {$this->name = $name;
    }publicfunction setName($name)
    {$this->name = $name;
    }publicfunction getName()
    {return$this->name;
    }
}
Copier après la connexion

  然后在配置文件中注册这个事件:

<?phpreturn$events = [&#39;App\Event\DemoEvent&#39;    =>    ['App\Listener\DemoListener' => 'handle',    ],];
Copier après la connexion

5.1.2 触发事件

  Minor提供了一个事件管理类:Minor\Event\EventManger,通过调用该类的静态方法fire:EventManager::fire($event)就可以触发这个事件,例:

class FooController extends Controller
{publicfunction bar($productName)
    {$event = new DemoEvent('DemoEvent');
        EventManager::fire($event);...    }
}
Copier après la connexion

5.2 监听器

  当触发事件后事件管理器EventManager就会通过配置文件去触发监听器的制定方法。在5.1.1配置文件中我们配置了DemoEvent的监听器为App\Listener\DemoListener的handle方法,可以看一下这个类的实现:

<?php

namespace App\Listener;use App\Event\DemoEvent;use Minor\Event\Listener;class DemoListener extends Listener
{publicfunction handle(DemoEvent $event)
    {echo &#39;[DemoListener] handle the event:[&#39; . $event->getName() .'] success!

';
    }
}
Copier après la connexion

以上就介绍了php框架之Minor5事件(附代码)的内容,希望对PHP教程有兴趣的朋友有所帮助。


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!