php - 主文件夹和子文件夹的不同命名空间
问题描述
是否可以执行以下操作:
"psr-4": {
"App\\": "src/",
"Tech\\": "src/Tech/"
}
如您所见,文件夹有App
名称空间,src
但 insrc/Tech/
必须是另一个Tech
名称空间。我试过了,但总是报错:
Cannot declare class, because the name is already in use
解决方案
是的,这是可能的,尽管我不知道有什么好的理由去做这样的事情——它只是让理解命名空间结构变得更加困难。
该错误Cannot declare class, because the name is already in use
可能是由 FQN 歧义引起的,例如,如果您有文件:
<?php
namespace App;
use Tech\MyClass;
$myClass = new MyClass();
然后你有App\MyClass
import for MyClass
is ambiguous -new MyClass()
可能意味着new \App\MyClass()
或new \Tech\MyClass()
. 在这种情况下,您需要使用别名:
<?php
namespace App;
use Tech\MyClass as TechMyClass;
$myClass = new MyClass();
$myTechClass = new TechMyClass();
推荐阅读
- assembly - x86 Assembly (AT&T):如何使用高级索引来设置内存中的特定部分
- c++ - 将长的 Unix 纪元时间戳转换为实际日期/时间
- gnuplot - gnuplot 的“步骤”样式不接受可变颜色
- mysql - MYSQL - 如何选择具有特定值的行,但仅当它出现一次?
- ios - 在 AVMutableComposition 视频中的多个视频上应用 scaleTimeRange 时遇到问题
- ubuntu - Nginx 位置匹配以 favicon.ico 结尾的所有内容
- python - 尝试使用文本库创建一个连接 4 游戏,然后稍后实现 GUI
- python - Python将图像文件夹lat和lon获取到df
- node.js - 如何处理nodeJS / express中的promise错误
- javascript - 不能在回调中调用 React Hook “useState”。使用 useMediaQuery 响应式 JS 媒体查询