关于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 目录

0
4
singwa
哈哈,早点休息
2019-04-04
共4条回复

singwa

2019-04-04

亲爱的同学您好。extend自己的目录下 的类文件不需要加上命名空间,但是 extend下面的其他目录 下的类库是需要加上命名空间的。祝您学习愉快 ,有问题欢迎随时沟通哈。

0
0

BAT资深工程师解析Tp5+Tp6底层源码

一门课掌握主流Tp5+最新Tp6框架底层,拥抱新潮流

686 学习 · 145 问题

查看课程