49 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
<?php
 | 
						|
 | 
						|
if ( !class_exists('Puc_v4p1_Autoloader', false) ):
 | 
						|
 | 
						|
	class Puc_v4p1_Autoloader {
 | 
						|
		private $prefix = '';
 | 
						|
		private $rootDir = '';
 | 
						|
		private $libraryDir = '';
 | 
						|
 | 
						|
		private $staticMap;
 | 
						|
 | 
						|
		public function __construct() {
 | 
						|
			$this->rootDir = dirname(__FILE__) . '/';
 | 
						|
			$nameParts = explode('_', __CLASS__, 3);
 | 
						|
			$this->prefix = $nameParts[0] . '_' . $nameParts[1] . '_';
 | 
						|
 | 
						|
			$this->libraryDir = realpath($this->rootDir . '../..') . '/';
 | 
						|
			$this->staticMap = array(
 | 
						|
				'PucReadmeParser' => 'vendor/readme-parser.php',
 | 
						|
				'Parsedown' => 'vendor/ParsedownLegacy.php',
 | 
						|
			);
 | 
						|
			if ( version_compare(PHP_VERSION, '5.3.0', '>=') ) {
 | 
						|
				$this->staticMap['Parsedown'] = 'vendor/Parsedown.php';
 | 
						|
			}
 | 
						|
 | 
						|
			spl_autoload_register(array($this, 'autoload'));
 | 
						|
		}
 | 
						|
 | 
						|
		public function autoload($className) {
 | 
						|
			if ( isset($this->staticMap[$className]) && file_exists($this->libraryDir . $this->staticMap[$className]) ) {
 | 
						|
				/** @noinspection PhpIncludeInspection */
 | 
						|
				include ($this->libraryDir . $this->staticMap[$className]);
 | 
						|
				return;
 | 
						|
			}
 | 
						|
 | 
						|
			if (strpos($className, $this->prefix) === 0) {
 | 
						|
				$path = substr($className, strlen($this->prefix));
 | 
						|
				$path = str_replace('_', '/', $path);
 | 
						|
				$path = $this->rootDir . $path . '.php';
 | 
						|
 | 
						|
				if (file_exists($path)) {
 | 
						|
					/** @noinspection PhpIncludeInspection */
 | 
						|
					include $path;
 | 
						|
				}
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
endif; |