Files
wordpress/wp-includes/SimplePie/autoloader.php
Sergey Biryukov 5a82c86d00 External Libraries: Update the SimplePie library to version 1.9.0.
References:
* [https://github.com/simplepie/simplepie/releases/tag/1.9.0 SimplePie 1.9.0 release notes]
* [https://github.com/simplepie/simplepie/compare/1.8.1...1.9.0 Full list of changes in SimplePie 1.9.0]

Follow-up to [59141], [60490].

Props swissspidy, TobiasBg, SergeyBiryukov.
Fixes #63961.
Built from https://develop.svn.wordpress.org/trunk@60771


git-svn-id: http://core.svn.wordpress.org/trunk@60107 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2025-09-16 22:47:31 +00:00

87 lines
2.0 KiB
PHP

<?php
// SPDX-FileCopyrightText: 2004-2023 Ryan Parman, Sam Sneddon, Ryan McCue
// SPDX-License-Identifier: BSD-3-Clause
/**
* PSR-4 implementation for SimplePie.
*
* After registering this autoload function with SPL, the following line
* would cause the function to attempt to load the \SimplePie\SimplePie class
* from /src/SimplePie.php:
*
* new \SimplePie\SimplePie();
*
* @param string $class The fully-qualified class name.
* @return void
*/
spl_autoload_register(function ($class) {
// project-specific namespace prefix
$prefix = 'SimplePie\\';
// base directory for the namespace prefix
$base_dir = __DIR__ . '/src/';
// does the class use the namespace prefix?
$len = strlen($prefix);
if (strncmp($prefix, $class, $len) !== 0) {
// no, move to the next registered autoloader
return;
}
// get the relative class name
$relative_class = substr($class, $len);
// replace the namespace prefix with the base directory, replace namespace
// separators with directory separators in the relative class name, append
// with .php
$file = $base_dir . str_replace('\\', '/', $relative_class) . '.php';
// if the file exists, require it
if (file_exists($file)) {
require $file;
}
});
// autoloader
spl_autoload_register(array(new SimplePie_Autoloader(), 'autoload'));
if (!class_exists('SimplePie'))
{
exit('Autoloader not registered properly');
}
/**
* Autoloader class
*/
class SimplePie_Autoloader
{
protected $path;
/**
* Constructor
*/
public function __construct()
{
$this->path = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'library';
}
/**
* Autoloader
*
* @param string $class The name of the class to attempt to load.
*/
public function autoload($class)
{
// Only load the class if it starts with "SimplePie"
if (strpos($class, 'SimplePie') !== 0)
{
return;
}
$filename = $this->path . DIRECTORY_SEPARATOR . str_replace('_', DIRECTORY_SEPARATOR, $class) . '.php';
include $filename;
}
}