| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -9,6 +9,7 @@ namespace yii; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					use yii\base\Exception; | 
					 | 
					 | 
					 | 
					use yii\base\Exception; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					use yii\base\InvalidConfigException; | 
					 | 
					 | 
					 | 
					use yii\base\InvalidConfigException; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					use yii\base\InvalidParamException; | 
					 | 
					 | 
					 | 
					use yii\base\InvalidParamException; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					use yii\base\UnknownClassException; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					use yii\log\Logger; | 
					 | 
					 | 
					 | 
					use yii\log\Logger; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					/** | 
					 | 
					 | 
					 | 
					/** | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -333,7 +334,11 @@ class YiiBase | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						 *    it will attempt to include the file associated with the corresponding path alias | 
					 | 
					 | 
					 | 
						 *    it will attempt to include the file associated with the corresponding path alias | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						 *    (e.g. `@PHPUnit/Framework/TestCase.php`); | 
					 | 
					 | 
					 | 
						 *    (e.g. `@PHPUnit/Framework/TestCase.php`); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						 * | 
					 | 
					 | 
					 | 
						 * | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 * This autoloader allows loading classes that follow the [PSR-0 standard](http://www.php-fig.org/psr/0/). | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 * Therefor a path alias has to be defined for each top-level namespace. | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 * | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						 * @param string $className the fully qualified class name without a leading backslash "\" | 
					 | 
					 | 
					 | 
						 * @param string $className the fully qualified class name without a leading backslash "\" | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						 * @throws UnknownClassException if the class does not exist in the class file | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						 */ | 
					 | 
					 | 
					 | 
						 */ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						public static function autoload($className) | 
					 | 
					 | 
					 | 
						public static function autoload($className) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						{ | 
					 | 
					 | 
					 | 
						{ | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -342,7 +347,6 @@ class YiiBase | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								if ($classFile[0] === '@') { | 
					 | 
					 | 
					 | 
								if ($classFile[0] === '@') { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
									$classFile = static::getAlias($classFile); | 
					 | 
					 | 
					 | 
									$classFile = static::getAlias($classFile); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								} | 
					 | 
					 | 
					 | 
								} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								include($classFile); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							} else { | 
					 | 
					 | 
					 | 
							} else { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								// follow PSR-0 to determine the class file | 
					 | 
					 | 
					 | 
								// follow PSR-0 to determine the class file | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								if (($pos = strrpos($className, '\\')) !== false) { | 
					 | 
					 | 
					 | 
								if (($pos = strrpos($className, '\\')) !== false) { | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -354,13 +358,22 @@ class YiiBase | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								} | 
					 | 
					 | 
					 | 
								} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								// try loading via path alias | 
					 | 
					 | 
					 | 
								// try loading via path alias | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								if (strpos($path, '/') !== false) { | 
					 | 
					 | 
					 | 
								if (strpos($path, '/') === false) { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
									return; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
								} else { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
									$classFile = static::getAlias('@' . $path, false); | 
					 | 
					 | 
					 | 
									$classFile = static::getAlias('@' . $path, false); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
									if ($classFile !== false && is_file($classFile)) { | 
					 | 
					 | 
					 | 
									if ($classFile === false || !is_file($classFile)) { | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
										include($classFile); | 
					 | 
					 | 
					 | 
										return; | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
									} | 
					 | 
					 | 
					 | 
									} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								} | 
					 | 
					 | 
					 | 
								} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							} | 
					 | 
					 | 
					 | 
							} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							include($classFile); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							if (!class_exists($className, false) && !interface_exists($className, false) && | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
								(!function_exists('trait_exists') || !trait_exists($className, false))) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
								throw new UnknownClassException("Unable to find '$className' in file: $classFile"); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						} | 
					 | 
					 | 
					 | 
						} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						/** | 
					 | 
					 | 
					 | 
						/** | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |