本文实例分析了yii2中yiibase自动加载类、引用文件的方法。分享给大家供大家参考,具体如下:
在yii2中这个函数是用来加载类的,没有直接引用文件的相关实现。但是这个也可以用来引用文件。
public static function autoload($classname)
{
/*
* $classmap是一个name-value数组,
* name为类的名称,
* value为这个类的文件路径,其中路径可包含别名
*
* 首先在$classmap中查找是否设置了类别名路径
*/
if (isset(static::$classmap[$classname])) {
$classfile = static::$classmap[$classname];
//如果路径是别名,获取别名路径
if ($classfile[0] === '@') {
$classfile = static::getalias($classfile);
}
//如果$classname以""开头,如:'abmyclass'
//则会生成别名 '@a/b/myclass.php',然后获取对应的别名路径。
} elseif (strpos($classname, '\') !== false) {
$classfile = static::getalias('@' . str_replace('\', '/', $classname) . '.php', false);
if ($classfile === false || !is_file($classfile)) {
return;
}
} else {
return;
}
//引用文件
include($classfile);
//如果debug,并且类不存在....
//则异常
//所以 在关闭debug的情况下 也是可以加载文件的
if (yii_debug && !class_exists($classname, false) && !interface_exists($classname, false) && !trait_exists($classname, false)) {
throw new unknownclassexception("unable to find '$classname' in file: $classfile. namespace missing?");
}
}
更多关于yii相关内容感兴趣的读者可查看本站专题:《yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于yii框架的php程序设计有所帮助。
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:)!