79 lines
1.9 KiB
PHP
79 lines
1.9 KiB
PHP
|
<?php
|
||
|
|
||
|
/*
|
||
|
* This file is part of SwiftMailer.
|
||
|
* (c) 2004-2009 Chris Corbyn
|
||
|
*
|
||
|
* For the full copyright and license information, please view the LICENSE
|
||
|
* file that was distributed with this source code.
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* General utility class in Swift Mailer, not to be instantiated.
|
||
|
*
|
||
|
* @author Chris Corbyn
|
||
|
*/
|
||
|
abstract class Swift
|
||
|
{
|
||
|
const VERSION = '6.2.7';
|
||
|
|
||
|
public static $initialized = false;
|
||
|
public static $inits = [];
|
||
|
|
||
|
/**
|
||
|
* Registers an initializer callable that will be called the first time
|
||
|
* a SwiftMailer class is autoloaded.
|
||
|
*
|
||
|
* This enables you to tweak the default configuration in a lazy way.
|
||
|
*
|
||
|
* @param mixed $callable A valid PHP callable that will be called when autoloading the first Swift class
|
||
|
*/
|
||
|
public static function init($callable)
|
||
|
{
|
||
|
self::$inits[] = $callable;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Internal autoloader for spl_autoload_register().
|
||
|
*
|
||
|
* @param string $class
|
||
|
*/
|
||
|
public static function autoload($class)
|
||
|
{
|
||
|
// Don't interfere with other autoloaders
|
||
|
if (0 !== strpos($class, 'Swift_')) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
$path = __DIR__.'/'.str_replace('_', '/', $class).'.php';
|
||
|
|
||
|
if (!file_exists($path)) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
require $path;
|
||
|
|
||
|
if (self::$inits && !self::$initialized) {
|
||
|
self::$initialized = true;
|
||
|
foreach (self::$inits as $init) {
|
||
|
\call_user_func($init);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Configure autoloading using Swift Mailer.
|
||
|
*
|
||
|
* This is designed to play nicely with other autoloaders.
|
||
|
*
|
||
|
* @param mixed $callable A valid PHP callable that will be called when autoloading the first Swift class
|
||
|
*/
|
||
|
public static function registerAutoload($callable = null)
|
||
|
{
|
||
|
if (null !== $callable) {
|
||
|
self::$inits[] = $callable;
|
||
|
}
|
||
|
spl_autoload_register(['Swift', 'autoload']);
|
||
|
}
|
||
|
}
|