@ -117,8 +117,9 @@ class YiiBase 
			
		
	
		
		
			
				
					
						 * To import a class or a directory, one can use either path alias or class name (can be namespaced): 	 * To import a class or a directory, one can use either path alias or class name (can be namespaced):  
			
		
	
		
		
			
				
					
						 * 	 *  
			
		
	
		
		
			
				
					
						 *  - `@app/components/GoogleMap`: importing the `GoogleMap` class with a path alias; 	 *  - `@app/components/GoogleMap`: importing the `GoogleMap` class with a path alias;  
			
		
	
		
		
			
				
					
						 *  - `GoogleMap`: importing the `GoogleMap` class with a class name; 	 *  - `@app/components/*`: importing the whole `components` directory with a path alias;  
			
				
				
			
		
	
		
		
			
				
					
						 *  - `@app/components/*`: importing the whole `components` directory with a path alias. 	 *  - `GoogleMap`: importing the `GoogleMap` class with a class name. [[autoload()]] will be used  
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
						 *  when this class is used for the first time.  
			
		
	
		
		
			
				
					
						 * 	 *  
			
		
	
		
		
			
				
					
						 * @param string $alias path alias or a simple class name to be imported 	 * @param string $alias path alias or a simple class name to be imported  
			
		
	
		
		
			
				
					
						 * @param boolean $forceInclude whether to include the class file immediately. If false, the class file 	 * @param boolean $forceInclude whether to include the class file immediately. If false, the class file  
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -160,7 +161,7 @@ class YiiBase 
			
		
	
		
		
			
				
					
									require($path . "/$className.php"); 				require($path . "/$className.php");  
			
		
	
		
		
			
				
					
									self::$_imported[$alias] = $className; 				self::$_imported[$alias] = $className;  
			
		
	
		
		
			
				
					
								} else { 			} else {  
			
		
	
		
		
			
				
					
									self::$classMap[$className] = $path . "/ $className.php"; 				self::$classMap[$className] = $path . DIRECTORY_SEPARATOR .  "$className.php";  
			
				
				
			
		
	
		
		
	
		
		
			
				
					
								} 			}  
			
		
	
		
		
			
				
					
								return $className; 			return $className;  
			
		
	
		
		
			
				
					
							} else { 		} else {  
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -257,33 +258,39 @@ class YiiBase 
			
		
	
		
		
			
				
					
								return true; 			return true;  
			
		
	
		
		
			
				
					
							} 		}  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
							// namespaced class, e.g. yii\base\Component  
			
		
	
		
		
			
				
					
							if (strpos($className, '\\') !== false) { 		if (strpos($className, '\\') !== false) {  
			
		
	
		
		
			
				
					
								// namespaced class, e.g. yii\base\Component  
			
		
	
		
		
			
				
					
								// convert namespace to path alias, e.g. yii\base\Component to @yii/base/Component 			// convert namespace to path alias, e.g. yii\base\Component to @yii/base/Component  
			
		
	
		
		
			
				
					
								$alias = '@' . str_replace('\\', '/', ltrim($className, '\\')); 			$alias = '@' . str_replace('\\', '/', ltrim($className, '\\'));  
			
		
	
		
		
			
				
					
								if (($path = static::getAlias($alias)) !== false) { 			if (($path = static::getAlias($alias)) !== false) {  
			
		
	
		
		
			
				
					
									include($path . '.php'); 				$classFile = $path . '.php';  
			
				
				
			
		
	
		
		
			
				
					
									return true;  
			
		
	
		
		
	
		
		
			
				
					
								} 			}  
			
		
	
		
		
			
				
					
								return false; 		} elseif (($pos = strpos($className, '_')) !== false) {  
			
				
				
			
		
	
		
		
			
				
					
							} 			// PEAR-styled class, e.g. PHPUnit_Framework_TestCase  
			
				
				
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
							// PEAR-styled class, e.g. PHPUnit_Framework_TestCase  
			
		
	
		
		
			
				
					
							if (($pos = strpos($className, '_')) !== false) {  
			
		
	
		
		
	
		
		
	
		
		
			
				
					
								// convert class name to path alias, e.g. PHPUnit_Framework_TestCase to @PHPUnit/Framework/TestCase 			// convert class name to path alias, e.g. PHPUnit_Framework_TestCase to @PHPUnit/Framework/TestCase  
			
		
	
		
		
			
				
					
								$alias = '@' . str_replace('_', '/', $className); 			$alias = '@' . str_replace('_', '/', $className);  
			
		
	
		
		
			
				
					
								if (($path = static::getAlias($alias)) !== false) { 			if (($path = static::getAlias($alias)) !== false) {  
			
		
	
		
		
			
				
					
									include($path . '.php'); 				$classFile = $path . '.php';  
			
				
				
			
		
	
		
		
			
				
					
									return true;  
			
		
	
		
		
	
		
		
			
				
					
								} 			}  
			
		
	
		
		
			
				
					
							} 		}  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
							// search in include paths 		if (!isset($classFile)) {  
			
				
				
			
		
	
		
		
			
				
					
							foreach (self::$classPath as $path) { 			// search in include paths  
			
				
				
			
		
	
		
		
			
				
					
								$classFile = $path . DIRECTORY_SEPARATOR . $className . '.php'; 			foreach (self::$classPath as $path) {  
			
				
				
			
		
	
		
		
			
				
					
								if (is_file($classFile)) { 				$path .= DIRECTORY_SEPARATOR . $className . '.php';  
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
									if (is_file($path)) {  
			
		
	
		
		
			
				
					
										$classFile = $path;  
			
		
	
		
		
			
				
					
										$alias = $className;  
			
		
	
		
		
			
				
					
									}  
			
		
	
		
		
			
				
					
								}  
			
		
	
		
		
			
				
					
							}  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
							if (isset($classFile, $alias)) {  
			
		
	
		
		
			
				
					
								if (!YII_DEBUG || basename(realpath($classFile)) === basename($alias) . '.php') {  
			
		
	
		
		
			
				
					
									include($classFile); 				include($classFile);  
			
		
	
		
		
			
				
					
									return true; 				return true;  
			
		
	
		
		
			
				
					
								} else {  
			
		
	
		
		
			
				
					
									throw new \yii\base\Exception("Class name '$className' does not match the class file '" . realpath($classFile) . "'. Have you checked their case sensitivity?");  
			
		
	
		
		
			
				
					
								} 			}  
			
		
	
		
		
			
				
					
							} 		}