yii autoload.php,关于yii 的baseyii.php的autoload步骤

本文探讨了Yii框架中baseYii.php中autoload方法的实现细节,重点在于理解为何使用普通include而非include_once。作者揭示了在已存在映射表的情况下,重复加载的判断逻辑和相关代码优化。
摘要由CSDN通过智能技术生成

关于yii 的baseyii.php的autoload方法

public static function autoload($className)

{

if (isset(static::$classMap[$className])) {

$classFile = static::$classMap[$className];

if ($classFile[0] === '@') {

$classFile = static::getAlias($classFile);

}

} elseif (strpos($className, '\\') !== false) {

$classFile = static::getAlias('@' . str_replace('\\', '/', $className) . '.php', false);

if ($classFile === false || !is_file($classFile)) {

return;

}

} else {

return;

}

include($classFile); //源码 include($classFile);

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?");

}

}

$classFile =static::$classMap[$className]有在yii.php加载了映射表为什么后面用include而不用include_once

// yii.php代码下面的语句读取了一个映射表

Yii::$classMap = include(__DIR__ . '/classes.php');

------解决思路----------------------

因为前面的代码已经判断了是否已经include。所以这里不需要once.

相关文章

相关视频

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值