Diff: STRATO-apps/wordpress_03/app/wp-content/plugins/aimogen-pro/res/simplepie/autoloader.php

Keine Baseline-Datei – Diff nur gegen leer.
Zur Liste
1 -
1 + <?php
2 + /**
3 + * SimplePie
4 + *
5 + * A PHP-Based RSS and Atom Feed Framework.
6 + * Takes the hard work out of managing a complete RSS/Atom solution.
7 + *
8 + * Copyright (c) 2004-2022, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
9 + * All rights reserved.
10 + *
11 + * Redistribution and use in source and binary forms, with or without modification, are
12 + * permitted provided that the following conditions are met:
13 + *
14 + * * Redistributions of source code must retain the above copyright notice, this list of
15 + * conditions and the following disclaimer.
16 + *
17 + * * Redistributions in binary form must reproduce the above copyright notice, this list
18 + * of conditions and the following disclaimer in the documentation and/or other materials
19 + * provided with the distribution.
20 + *
21 + * * Neither the name of the SimplePie Team nor the names of its contributors may be used
22 + * to endorse or promote products derived from this software without specific prior
23 + * written permission.
24 + *
25 + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
26 + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
27 + * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
28 + * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29 + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
30 + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
31 + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
32 + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33 + * POSSIBILITY OF SUCH DAMAGE.
34 + *
35 + * @package SimplePie
36 + * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
37 + * @author Ryan Parman
38 + * @author Sam Sneddon
39 + * @author Ryan McCue
40 + * @link http://simplepie.org/ SimplePie
41 + * @license http://www.opensource.org/licenses/bsd-license.php BSD License
42 + */
43 +
44 +
45 + /**
46 + * PSR-4 implementation for SimplePie.
47 + *
48 + * After registering this autoload function with SPL, the following line
49 + * would cause the function to attempt to load the \SimplePie\SimplePie class
50 + * from /src/SimplePie.php:
51 + *
52 + * new \SimplePie\SimplePie();
53 + *
54 + * @param string $class The fully-qualified class name.
55 + * @return void
56 + */
57 + spl_autoload_register(function ($class) {
58 +
59 + // project-specific namespace prefix
60 + $prefix = 'SimplePie\\';
61 +
62 + // base directory for the namespace prefix
63 + $base_dir = __DIR__ . '/src/';
64 +
65 + // does the class use the namespace prefix?
66 + $len = strlen($prefix);
67 + if (strncmp($prefix, $class, $len) !== 0) {
68 + // no, move to the next registered autoloader
69 + return;
70 + }
71 +
72 + // get the relative class name
73 + $relative_class = substr($class, $len);
74 +
75 + // replace the namespace prefix with the base directory, replace namespace
76 + // separators with directory separators in the relative class name, append
77 + // with .php
78 + $file = $base_dir . str_replace('\\', '/', $relative_class) . '.php';
79 +
80 + // if the file exists, require it
81 + if (file_exists($file)) {
82 + require $file;
83 + }
84 + });
85 +
86 + // autoloader
87 + spl_autoload_register(array(new SimplePie_Autoloader(), 'autoload'));
88 +
89 + if (!class_exists('SimplePie'))
90 + {
91 + exit('Autoloader not registered properly');
92 + }
93 +
94 + /**
95 + * Autoloader class
96 + *
97 + * @package SimplePie
98 + * @subpackage API
99 + */
100 + class SimplePie_Autoloader
101 + {
102 + protected $path;
103 +
104 + /**
105 + * Constructor
106 + */
107 + public function __construct()
108 + {
109 + $this->path = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'library';
110 + }
111 +
112 + /**
113 + * Autoloader
114 + *
115 + * @param string $class The name of the class to attempt to load.
116 + */
117 + public function autoload($class)
118 + {
119 + // Only load the class if it starts with "SimplePie"
120 + if (strpos($class, 'SimplePie') !== 0)
121 + {
122 + return;
123 + }
124 +
125 + $filename = $this->path . DIRECTORY_SEPARATOR . str_replace('_', DIRECTORY_SEPARATOR, $class) . '.php';
126 + include $filename;
127 + }
128 + }
129 +