Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 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
	trigger_error('Autoloader not registered properly', E_USER_ERROR);
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
}