-
Notifications
You must be signed in to change notification settings - Fork 0
/
EventListener.php
43 lines (41 loc) · 1.04 KB
/
EventListener.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
namespace SCC;
#[Attribute]
class EventListenerInfo {}
abstract class EventListener {
protected \SCC\state $state;
protected ?\SCC\Event $event;
public function __construct(?\SCC\Event $event, \SCC\State $state) {
$this->event = $event;
$this->state = $state;
}
/**
* Получить экземпляр события данного слушателя
* @return \SCC\Event or null
*/
public function getEvent(): ?\SCC\Event {
return $this->event;
}
/**
* Получить сохраненные данные этого события
* @return \SCC\State
*/
public function getState(): \SCC\State {
return $this->state;
}
/**
* Проверить условие выполнения слушателя
* @return Продолжить ли выполнение
*/
public function validate():bool {
return true;
}
/**
* Выполнить слушатель
*/
public abstract function run():void;
/**
* Действие при неуспешной проверки validate
*/
public function error():void {}
}