1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- <?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
- {
- /** Swift Mailer Version number generated during dist release process */
- const VERSION = '@SWIFT_VERSION_NUMBER@';
- public static $initialized = false;
- public static $inits = array();
- /**
- * 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'));
- }
- }
|