[ Index ] |
PHP Cross Reference of WordPress Trunk (Updated Daily) |
[Summary view] [Print] [Text view]
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');
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated : Wed Sep 17 08:20:04 2025 | Cross-referenced by PHPXref |