-
Notifications
You must be signed in to change notification settings - Fork 226
/
ClearCache.php
65 lines (57 loc) · 1.06 KB
/
ClearCache.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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
namespace WP_Rocket\Engine\Preload\Controller;
use WP_Rocket\Engine\Preload\Database\Queries\Cache;
class ClearCache {
use CheckExcludedTrait;
/**
* DB query.
*
* @var Cache
*/
protected $query;
/**
* Initialise ClearCache.
*
* @param Cache $query DB query.
*/
public function __construct( Cache $query ) {
$this->query = $query;
}
/**
* Clear urls listed.
*
* @param array $urls urls to clean.
* @return void
*/
public function partial_clean( array $urls ) {
foreach ( $urls as $url ) {
if ( ! $this->is_excluded_by_filter( $url ) ) {
$this->query->create_or_update(
[
'url' => $url,
'status' => 'pending',
]
);
} else {
$this->query->delete_by_url( $url );
}
}
}
/**
* Clear all urls.
*
* @return void
*/
public function full_clean() {
$this->query->set_all_to_pending();
}
/**
* Delete a URL from the preload.
*
* @param string $url URL to delete.
* @return void
*/
public function delete_url( string $url ) {
$this->query->delete_by_url( $url );
}
}