一般的代码都是先 use 然后使用,但是这种不大好替换,搜索相关代码调用也不是很明了,我一般直接使用全路径,方便替换,比如 如果 User 要改成 Staff,可以全局搜索\ModelSpace\User 。 使用方法 2, 有什么不好的地方呢?很少看到别人这样做。
// 方法 1
use ModelSpace\User;
User::find($id)
// vs
// 方法 2
\ModelSpace\User::find($id);
1
qwertyzzz 2021-02-19 11:23:52 +08:00
丑
|
3
334132462 2021-02-19 11:30:15 +08:00
唯一缺点 可能取类名时得想很久
|
4
keepeye 2021-02-19 11:34:46 +08:00
都感觉有点陌生了,两年多没写 PHP 了
|
5
Makoto 2021-02-19 11:34:47 +08:00
这样真的感觉很长,而且代码量比较重复
|
6
lovecy 2021-02-19 11:37:24 +08:00
有工具插件能自动补全也还行,
|
8
agdhole 2021-02-19 11:40:05 +08:00
全局替换你直接替换 use 的不也可以吗?
|
9
a7dog OP @agdhole 换 use 的,对应使用的的 class 会自动改吗,或者有插件可以实现这个功能?比如
use ModelSpace\User; 变成了 use ModelSpace\Staff, User::find($id) 会自动变成 Staff::find($id) ? |
11
junan0708 2021-02-19 11:46:00 +08:00
use ModelSpace\Staff as User 。不是更简单?
|
12
BeautifulSoap 2021-02-19 11:49:47 +08:00
所以说这不就体现了 IDE 的优点了
用 IDE 的话把 User 改名了,它会自动分析其他代码将所有引用了 User 的地方自动改成 Staff |
13
lap510200 2021-02-19 11:52:22 +08:00
第一种配合 ide 用就很方便和稳,第二种和每个类起唯一名没啥区别
|
15
a7dog OP @BeautifulSoap 这就很强大了,VSC 还没看到这个功能
|
17
debuggerx 2021-02-19 12:09:38 +08:00
1. 即使是只有自己会看会写的代码,最好也不要抱着“看习惯也还行”的想法写大多数人不习惯的代码,否则写别的代码的时候也会缺乏规范意识。
2. 善用 IDE,编辑器终归只是编辑器。想想那么多人宁愿花钱用 IDE 都不选免费的 vsc 就知道,差距还是不小的。 |
19
changz 2021-02-19 12:31:24 +08:00 via Android
😏
|
20
BeautifulSoap 2021-02-19 13:41:57 +08:00
@a7dog VSC 也只是编辑器,基于文本的查找替换行,但是涉及到变量重命名这种场景的时候,是需要编辑器分析理解整个项目代码的,这种重量级的功能需求还是主流 IDE 才行
|
21
sanqian 2021-02-19 14:17:51 +08:00
这样真的丑。。
|
24
k396656156 2021-02-19 15:52:13 +08:00
看不懂你要这样写,你改起来不是很麻烦,改漏了不是出问题了
|
25
Still4 2021-02-19 16:08:55 +08:00
太长了,不方便看,你举的例子里面只用了一次,如果调用几十次,第一眼看过去,你自己都会骂哪个傻*这么写的,都不知道精简下
use TencentAds\Model\AdsGetResponseData; use TencentAds\Model\AdvertiserGetListStruct; use TencentAds\Model\AdvertiserGetResponseData; use TencentAds\Model\BusinessManagerRelationsGetResponseData; use Google\Ads\GoogleAds\V5\Enums\AdGroupStatusEnum\AdGroupStatus; use Google\Ads\GoogleAds\V5\Enums\CampaignStatusEnum\CampaignStatus; 给你看下某个广告库的代码,光是引用就这么长,意味着你要是看代码逻辑得拖到屏幕一半,心理负担太重 |
26
guanhui07 2021-02-19 16:52:59 +08:00
use ModelSpace\Staff as User
|
27
konakona 2021-02-19 17:22:28 +08:00
那是因为你没有用好的 IDE ! phpstorm,你重构一个类的名称,那么所有项目底下使用到这个类的都会自己改。
|
29
MengiNo 2021-02-19 19:06:33 +08:00
不过现在 IDE 补全的时候都会自动导包吧... 就算是第二种写法 只要写个 User::find 后面选好补全后,IDE 不就自己会去 use 一个叫 User 的类进来。我用 vscode 是比较习惯手动选包,但是 phpstorm 这种早就把代码分析好了,应该直接就可以回车补全 + 导包 同时完成吧。
|