关于extend的目录类文件不用加命名空间的参考
来源:3-2 【你应该掌握的底层】PHP底层ArrayAccess类巧用分析
qq_四月是你的谎言喽_03448132
2019-04-03
$logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . '.php';
foreach (self::$fallbackDirsPsr4 as $dir) {
if (is_file($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
return $file;
}
}
上面大概是加载extend 的流程,如果加了命名空间,
$class = ‘test\Name’, $logincalPathPsr4 = ‘test\Name.php’, 下面的file 名称会带上test,翻译成文件地址就相当于在extend 目录下面存在一个test 文件夹,
所以如果直接在extend 文件夹下新建文件,不要加上命名空间,但如果要extend 的下面文件夹里面包含类文件,需要给这个类文件加上和文件夹名称一样的命名空间
写回答
2回答
-
一场丶
2019-04-04
// 自动加载extend目录
self::addAutoLoadDir($rootPath . 'extend');因为自动加载只到 extend 目录
042019-04-04 -
singwa
2019-04-04
亲爱的同学您好。extend自己的目录下 的类文件不需要加上命名空间,但是 extend下面的其他目录 下的类库是需要加上命名空间的。祝您学习愉快 ,有问题欢迎随时沟通哈。
00
相似问题