12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- <?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.
- *
- * @package Swift
- *
- * @author Chris Corbyn
- */
- abstract class Swift
- {
- public static $initialized = false;
- public static $inits = array();
-
- /** Swift Mailer Version number generated during dist release process */
- const VERSION = '@SWIFT_VERSION_NUMBER@';
-
- /**
- * 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 = dirname(__FILE__).'/'.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(array('Swift', 'autoload'));
- }
- }
|