MichaelKing0 / observers
PHP中观察者模式的简单实现
0.1.1
2016-09-10 21:20 UTC
Requires (Dev)
- phpunit/phpunit: ^5.5
This package is auto-updated.
Last update: 2024-09-11 22:23:00 UTC
README
基本的PHP观察者模式实现
使用方法
安装
composer require michaelking0/observers
创建可观察的类(主题)
在你的主题类中实现 MichaelKing0\Observers\Interfaces\ObservableInterface 接口。同时,使用特性 MichaelKing0\Observers\Traits\ObservableTrait。
<?php namespace ACME; use MichaelKing0\Observers\Interfaces\ObservableInterface; use MichaelKing0\Observers\Traits\ObservableTrait; class MySubject implements ObservableInterface { use ObservableTrait; }
然后添加一个使用 notify 方法的函数
<?php namespace ACME; use MichaelKing0\Observers\Interfaces\ObservableInterface; use MichaelKing0\Observers\Traits\ObservableTrait; class MySubject implements ObservableInterface { use ObservableTrait; public function save() { $this->notify('SubjectSaved'); } }
这将通知观察者事件,并将事件名称和当前实例作为参数传递
创建观察者
要创建观察者,实现 MichaelKing0\Observers\Interfaces\ObservableInterface 接口。
<?php namespace ACME; use MichaelKing0\Observers\Interfaces\ObservableInterface; use MichaelKing0\Observers\Interfaces\ObserverInterface; class MyObserver implements ObserverInterface { public function update($event, ObservableInterface $observable) { echo 'It works!'; } }
附加观察者
你可以通过调用带有事件名称和观察者实例的 attach 方法将观察者附加到主题上,即
$subject = new MySubject(); $subject->attach('SubjectSaved', new MyObserver());