1.获取别名:
2.设置别名:
3.import 一个类
- import 一个目录
5.自动加载
1.先判断是否 self::$classMap中
2.判断是否在 self::$_coreClasses中
public static function autoload($className,$classMapOnly=false)
{
self::$classMap['CLogger'] = '/logging/CLogger.php';
// use include so that the error PHP file may appear
if(isset(self::$classMap[$className])) {
include(self::$classMap[$className]);
} elseif(isset(self::$_coreClasses[$className])) {
//echo (YII_PATH.self::$_coreClasses[$className]);die;
include(YII_PATH.self::$_coreClasses[$className]);
} elseif($classMapOnly) {
return false;
} else
{
// include class file relying on include_path
if(strpos($className,'\\')===false) // class without namespace
{
if(self::$enableIncludePath===false)
{
foreach(self::$_includePaths as $path)
{
$classFile=$path.DIRECTORY_SEPARATOR.$className.'.php';
if(is_file($classFile))
{
include($classFile);
if(YII_DEBUG && basename(realpath($classFile))!==$className.'.php')
throw new CException(Yii::t('yii','Class name "{class}" does not match class file "{file}".', array(
'{class}'=>$className,
'{file}'=>$classFile,
)));
break;
}
}
}
else {
include($className.'.php');
}
}
else // class name with namespace in PHP 5.3
{
$namespace=str_replace('\\','.',ltrim($className,'\\'));
if(($path=self::getPathOfAlias($namespace))!==false && is_file($path.'.php')) {
include($path.'.php');
}
else {
return false;
}
}
return class_exists($className,false) || interface_exists($className,false);
}
return true;
}
- 使用Class Map
7.使用命名空间的类
8.使用Yii::createComponent()