/var/www/html_nl/wp-includes/SimplePie/autoloader.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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<?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;
    }
}