/
Subscriber.php
47 lines (40 loc) · 971 Bytes
/
Subscriber.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
44
45
46
47
<?php
namespace Statamic\API;
use Statamic\Events\Concerns\ListensForContentEvents;
class Subscriber
{
use ListensForContentEvents;
/**
* Register the listeners for the subscriber.
*
* @param \Illuminate\Events\Dispatcher $events
*/
public function subscribe($events)
{
foreach ($this->events as $event) {
$events->listen($event, self::class.'@invalidate');
}
}
/**
* Invalidate API cache.
*
* @param mixed $event
*/
public function invalidate($event)
{
if ($this->eventIsIgnored($event)) {
return;
}
app(Cacher::class)->handleInvalidationEvent($event);
}
/**
* Check if event is ignored.
*
* @param mixed $event
* @return bool
*/
protected function eventIsIgnored($event)
{
return collect(config('statamic.api.cache.ignored_events'))->contains(get_class($event));
}
}