83 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace Egulias;
 | |
| 
 | |
| /**
 | |
|  * PSR-0 Autoloader
 | |
|  *
 | |
|  * @author ieter Hordijk <info@pieterhordijk.com>
 | |
|  */
 | |
| class EguliasAutoLoader
 | |
| {
 | |
|     /**
 | |
|      * @var string The namespace prefix for this instance.
 | |
|      */
 | |
|     protected $namespace = '';
 | |
| 
 | |
|     /**
 | |
|      * @var string The filesystem prefix to use for this instance
 | |
|      */
 | |
|     protected $path = '';
 | |
| 
 | |
|     /**
 | |
|      * Build the instance of the autoloader
 | |
|      *
 | |
|      * @param string $namespace The prefixed namespace this instance will load
 | |
|      * @param string $path      The filesystem path to the root of the namespace
 | |
|      */
 | |
|     public function __construct($namespace, $path)
 | |
|     {
 | |
|         $this->namespace = ltrim($namespace, '\\');
 | |
|         $this->path = rtrim($path, '/\\') . DIRECTORY_SEPARATOR;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Try to load a class
 | |
|      *
 | |
|      * @param string $class The class name to load
 | |
|      *
 | |
|      * @return boolean If the loading was successful
 | |
|      */
 | |
|     public function load($class)
 | |
|     {
 | |
|         $class = ltrim($class, '\\');
 | |
|         if (strpos($class, $this->namespace) === 0) {
 | |
|             $nsparts = explode('\\', $class);
 | |
|             $class = array_pop($nsparts);
 | |
|             $path = $this->path . 'swiftmailer/egulias/email-validator/EmailValidator/';
 | |
|             $max=count($nsparts);
 | |
|             for ($i=2; $i<$max;$i++) {
 | |
|                 $path .= $nsparts[$i].'/';
 | |
|             }
 | |
|             $nsparts = array();
 | |
|             $path .= str_replace('_', DIRECTORY_SEPARATOR, $class) . '.php';
 | |
|             if (file_exists($path)) {
 | |
|                 require $path;
 | |
|                 return true;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         return false;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Register the autoloader to PHP
 | |
|      *
 | |
|      * @return boolean The status of the registration
 | |
|      */
 | |
|     public function register()
 | |
|     {
 | |
|         return spl_autoload_register(array($this, 'load'));
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Unregister the autoloader to PHP
 | |
|      *
 | |
|      * @return boolean The status of the unregistration
 | |
|      */
 | |
|     public function unregister()
 | |
|     {
 | |
|         return spl_autoload_unregister(array($this, 'load'));
 | |
|     }
 | |
| }
 |