1<?php
2/**
3 * PHPMailer SPL autoloader.
4 * PHP Version 5
5 * @package PHPMailer
6 * @link https://github.com/PHPMailer/PHPMailer/ The PHPMailer GitHub project
7 * @author Marcus Bointon (Synchro/coolbru) <phpmailer@synchromedia.co.uk>
8 * @author Jim Jagielski (jimjag) <jimjag@gmail.com>
9 * @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net>
10 * @author Brent R. Matzelle (original founder)
11 * @copyright 2012 - 2014 Marcus Bointon
12 * @copyright 2010 - 2012 Jim Jagielski
13 * @copyright 2004 - 2009 Andy Prevost
14 * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
15 * @note This program is distributed in the hope that it will be useful - WITHOUT
16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
17 * FITNESS FOR A PARTICULAR PURPOSE.
18 */
19
20/**
21 * PHPMailer SPL autoloader.
22 * @param string $classname The name of the class to load
23 */
24function PHPMailerAutoload($classname)
25{
26 //Can't use __DIR__ as it's only in PHP 5.3+
27 $filename = dirname(__FILE__).DIRECTORY_SEPARATOR.'class.'.strtolower($classname).'.php';
28 if (is_readable($filename)) {
29 require $filename;
30 }
31}
32
33if (version_compare(PHP_VERSION, '5.1.2', '>=')) {
34 //SPL autoloading was introduced in PHP 5.1.2
35 if (version_compare(PHP_VERSION, '5.3.0', '>=')) {
36 spl_autoload_register('PHPMailerAutoload', true, true);
37 } else {
38 spl_autoload_register('PHPMailerAutoload');
39 }
40} else {
41 /**
42 * Fall back to traditional autoload for old PHP versions
43 * @param string $classname The name of the class to load
44 */
45 function __autoload($classname)
46 {
47 PHPMailerAutoload($classname);
48 }
49}