123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- <?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.3';
- 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']);
- }
- }
|