Diff: STRATO-apps/wordpress_03/app/wp-includes/SimplePie/src/Cache/DB.php
Keine Baseline-Datei – Diff nur gegen leer.
1
-
1
+
<?php
2
+
3
+
// SPDX-FileCopyrightText: 2004-2023 Ryan Parman, Sam Sneddon, Ryan McCue
4
+
// SPDX-License-Identifier: BSD-3-Clause
5
+
6
+
declare(strict_types=1);
7
+
8
+
namespace SimplePie\Cache;
9
+
10
+
use SimplePie\Item;
11
+
12
+
/**
13
+
* Base class for database-based caches
14
+
*
15
+
* @deprecated since SimplePie 1.8.0, use implementation of "Psr\SimpleCache\CacheInterface" instead
16
+
*/
17
+
abstract class DB implements Base
18
+
{
19
+
/**
20
+
* Helper for database conversion
21
+
*
22
+
* Converts a given {@see SimplePie} object into data to be stored
23
+
*
24
+
* @param \SimplePie\SimplePie $data
25
+
* @return array{string, array<string, Item>} First item is the serialized data for storage, second item is the unique ID for this item
26
+
*/
27
+
protected static function prepare_simplepie_object_for_cache(\SimplePie\SimplePie $data)
28
+
{
29
+
$items = $data->get_items();
30
+
$items_by_id = [];
31
+
32
+
if (!empty($items)) {
33
+
foreach ($items as $item) {
34
+
$items_by_id[$item->get_id()] = $item;
35
+
}
36
+
37
+
if (count($items_by_id) !== count($items)) {
38
+
$items_by_id = [];
39
+
foreach ($items as $item) {
40
+
$items_by_id[$item->get_id(true)] = $item;
41
+
}
42
+
}
43
+
44
+
if (isset($data->data['child'][\SimplePie\SimplePie::NAMESPACE_ATOM_10]['feed'][0])) {
45
+
$channel = &$data->data['child'][\SimplePie\SimplePie::NAMESPACE_ATOM_10]['feed'][0];
46
+
} elseif (isset($data->data['child'][\SimplePie\SimplePie::NAMESPACE_ATOM_03]['feed'][0])) {
47
+
$channel = &$data->data['child'][\SimplePie\SimplePie::NAMESPACE_ATOM_03]['feed'][0];
48
+
} elseif (isset($data->data['child'][\SimplePie\SimplePie::NAMESPACE_RDF]['RDF'][0])) {
49
+
$channel = &$data->data['child'][\SimplePie\SimplePie::NAMESPACE_RDF]['RDF'][0];
50
+
} elseif (isset($data->data['child'][\SimplePie\SimplePie::NAMESPACE_RSS_20]['rss'][0]['child'][\SimplePie\SimplePie::NAMESPACE_RSS_20]['channel'][0])) {
51
+
$channel = &$data->data['child'][\SimplePie\SimplePie::NAMESPACE_RSS_20]['rss'][0]['child'][\SimplePie\SimplePie::NAMESPACE_RSS_20]['channel'][0];
52
+
} else {
53
+
$channel = null;
54
+
}
55
+
56
+
if ($channel !== null) {
57
+
if (isset($channel['child'][\SimplePie\SimplePie::NAMESPACE_ATOM_10]['entry'])) {
58
+
unset($channel['child'][\SimplePie\SimplePie::NAMESPACE_ATOM_10]['entry']);
59
+
}
60
+
if (isset($channel['child'][\SimplePie\SimplePie::NAMESPACE_ATOM_03]['entry'])) {
61
+
unset($channel['child'][\SimplePie\SimplePie::NAMESPACE_ATOM_03]['entry']);
62
+
}
63
+
if (isset($channel['child'][\SimplePie\SimplePie::NAMESPACE_RSS_10]['item'])) {
64
+
unset($channel['child'][\SimplePie\SimplePie::NAMESPACE_RSS_10]['item']);
65
+
}
66
+
if (isset($channel['child'][\SimplePie\SimplePie::NAMESPACE_RSS_090]['item'])) {
67
+
unset($channel['child'][\SimplePie\SimplePie::NAMESPACE_RSS_090]['item']);
68
+
}
69
+
if (isset($channel['child'][\SimplePie\SimplePie::NAMESPACE_RSS_20]['item'])) {
70
+
unset($channel['child'][\SimplePie\SimplePie::NAMESPACE_RSS_20]['item']);
71
+
}
72
+
}
73
+
if (isset($data->data['items'])) {
74
+
unset($data->data['items']);
75
+
}
76
+
if (isset($data->data['ordered_items'])) {
77
+
unset($data->data['ordered_items']);
78
+
}
79
+
}
80
+
return [serialize($data->data), $items_by_id];
81
+
}
82
+
}
83
+
84
+
class_alias('SimplePie\Cache\DB', 'SimplePie_Cache_DB');
85
+