Make WordPress Core


Ignore:
Timestamp:
09/30/2024 10:48:16 PM (6 months ago)
Author:
SergeyBiryukov
Message:

External Libraries: Update the SimplePie library to version 1.8.0.

The most notable change in this update is that all code is now namespaced and uses PSR-4 classes, though there is a compatibility layer available for extenders using the older class names, so plugin or theme authors directly using SimplePie can decide for themselves when they want to change to using the namespaced names for SimplePie classes.

Note: This commit includes additional fixes for PHP 8.4 compatibility (PR 875, PR 888) from the one-dot-eight branch of SimplePie, which is expected to be released as SimplePie 1.8.1 soon.

References:

Follow-up to [47733], [49176], [52393], [52413].

Props jrf, peterwilsoncc, chaion07, cu121, markparnell, audrasjb, costdev, Presskopp, desrosj, faisal03, mukesh27, SergeyBiryukov.
See #55604.

Location:
trunk/src/wp-includes/SimplePie/src
Files:
1 added
1 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/SimplePie/src/Cache/DB.php

    r47733 r59141  
    11<?php
     2
    23/**
    34 * SimplePie
     
    67 * Takes the hard work out of managing a complete RSS/Atom solution.
    78 *
    8  * Copyright (c) 2004-2016, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
     9 * Copyright (c) 2004-2022, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
    910 * All rights reserved.
    1011 *
     
    4243 */
    4344
     45namespace SimplePie\Cache;
     46
    4447/**
    4548 * Base class for database-based caches
     
    4750 * @package SimplePie
    4851 * @subpackage Caching
     52 * @deprecated since SimplePie 1.8.0, use implementation of "Psr\SimpleCache\CacheInterface" instead
    4953 */
    50 abstract class SimplePie_Cache_DB implements SimplePie_Cache_Base
     54abstract class DB implements Base
    5155{
    52     /**
    53     * Helper for database conversion
    54     *
    55     * Converts a given {@see SimplePie} object into data to be stored
    56     *
    57      * @param SimplePie $data
    58     * @return array First item is the serialized data for storage, second item is the unique ID for this item
    59     */
    60     protected static function prepare_simplepie_object_for_cache($data)
    61     {
    62         $items = $data->get_items();
    63         $items_by_id = array();
     56    /**
     57    * Helper for database conversion
     58    *
     59    * Converts a given {@see SimplePie} object into data to be stored
     60    *
     61     * @param \SimplePie\SimplePie $data
     62    * @return array First item is the serialized data for storage, second item is the unique ID for this item
     63    */
     64    protected static function prepare_simplepie_object_for_cache($data)
     65    {
     66        $items = $data->get_items();
     67        $items_by_id = [];
    6468
    65         if (!empty($items))
    66         {
    67             foreach ($items as $item)
    68             {
    69                 $items_by_id[$item->get_id()] = $item;
    70             }
     69        if (!empty($items)) {
     70            foreach ($items as $item) {
     71                $items_by_id[$item->get_id()] = $item;
     72            }
    7173
    72             if (count($items_by_id) !== count($items))
    73             {
    74                 $items_by_id = array();
    75                 foreach ($items as $item)
    76                 {
    77                     $items_by_id[$item->get_id(true)] = $item;
    78                 }
    79             }
     74            if (count($items_by_id) !== count($items)) {
     75                $items_by_id = [];
     76                foreach ($items as $item) {
     77                    $items_by_id[$item->get_id(true)] = $item;
     78                }
     79            }
    8080
    81             if (isset($data->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0]))
    82             {
    83                 $channel =& $data->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0];
    84             }
    85             elseif (isset($data->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0]))
    86             {
    87                 $channel =& $data->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0];
    88             }
    89             elseif (isset($data->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]))
    90             {
    91                 $channel =& $data->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0];
    92             }
    93             elseif (isset($data->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_20]['channel'][0]))
    94             {
    95                 $channel =& $data->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_20]['channel'][0];
    96             }
    97             else
    98             {
    99                 $channel = null;
    100             }
     81            if (isset($data->data['child'][\SimplePie\SimplePie::NAMESPACE_ATOM_10]['feed'][0])) {
     82                $channel = &$data->data['child'][\SimplePie\SimplePie::NAMESPACE_ATOM_10]['feed'][0];
     83            } elseif (isset($data->data['child'][\SimplePie\SimplePie::NAMESPACE_ATOM_03]['feed'][0])) {
     84                $channel = &$data->data['child'][\SimplePie\SimplePie::NAMESPACE_ATOM_03]['feed'][0];
     85            } elseif (isset($data->data['child'][\SimplePie\SimplePie::NAMESPACE_RDF]['RDF'][0])) {
     86                $channel = &$data->data['child'][\SimplePie\SimplePie::NAMESPACE_RDF]['RDF'][0];
     87            } elseif (isset($data->data['child'][\SimplePie\SimplePie::NAMESPACE_RSS_20]['rss'][0]['child'][\SimplePie\SimplePie::NAMESPACE_RSS_20]['channel'][0])) {
     88                $channel = &$data->data['child'][\SimplePie\SimplePie::NAMESPACE_RSS_20]['rss'][0]['child'][\SimplePie\SimplePie::NAMESPACE_RSS_20]['channel'][0];
     89            } else {
     90                $channel = null;
     91            }
    10192
    102             if ($channel !== null)
    103             {
    104                 if (isset($channel['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['entry']))
    105                 {
    106                     unset($channel['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['entry']);
    107                 }
    108                 if (isset($channel['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['entry']))
    109                 {
    110                     unset($channel['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['entry']);
    111                 }
    112                 if (isset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_10]['item']))
    113                 {
    114                     unset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_10]['item']);
    115                 }
    116                 if (isset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_090]['item']))
    117                 {
    118                     unset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_090]['item']);
    119                 }
    120                 if (isset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_20]['item']))
    121                 {
    122                     unset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_20]['item']);
    123                 }
    124             }
    125             if (isset($data->data['items']))
    126             {
    127                 unset($data->data['items']);
    128             }
    129             if (isset($data->data['ordered_items']))
    130             {
    131                 unset($data->data['ordered_items']);
    132             }
    133         }
    134         return array(serialize($data->data), $items_by_id);
    135     }
     93            if ($channel !== null) {
     94                if (isset($channel['child'][\SimplePie\SimplePie::NAMESPACE_ATOM_10]['entry'])) {
     95                    unset($channel['child'][\SimplePie\SimplePie::NAMESPACE_ATOM_10]['entry']);
     96                }
     97                if (isset($channel['child'][\SimplePie\SimplePie::NAMESPACE_ATOM_03]['entry'])) {
     98                    unset($channel['child'][\SimplePie\SimplePie::NAMESPACE_ATOM_03]['entry']);
     99                }
     100                if (isset($channel['child'][\SimplePie\SimplePie::NAMESPACE_RSS_10]['item'])) {
     101                    unset($channel['child'][\SimplePie\SimplePie::NAMESPACE_RSS_10]['item']);
     102                }
     103                if (isset($channel['child'][\SimplePie\SimplePie::NAMESPACE_RSS_090]['item'])) {
     104                    unset($channel['child'][\SimplePie\SimplePie::NAMESPACE_RSS_090]['item']);
     105                }
     106                if (isset($channel['child'][\SimplePie\SimplePie::NAMESPACE_RSS_20]['item'])) {
     107                    unset($channel['child'][\SimplePie\SimplePie::NAMESPACE_RSS_20]['item']);
     108                }
     109            }
     110            if (isset($data->data['items'])) {
     111                unset($data->data['items']);
     112            }
     113            if (isset($data->data['ordered_items'])) {
     114                unset($data->data['ordered_items']);
     115            }
     116        }
     117        return [serialize($data->data), $items_by_id];
     118    }
    136119}
     120
     121class_alias('SimplePie\Cache\DB', 'SimplePie_Cache_DB');
Note: See TracChangeset for help on using the changeset viewer.