Ctrl+H是首选,因其专为展示类的静态继承链设计,能直接显示父类、子类及实现接口的完整层级关系;而Ctrl+T自2020.1起已改为重写方法功能,Ctrl+Alt+Shift+U则依赖选中范围生成UML快照,并非继承图。

Ctrl+H(Windows/Linux)或 Cmd+H(macOS)是唯一可靠、开箱即用的类继承图快捷键,其他组合如 Ctrl+T 或 Ctrl+Alt+U 都不直接显示完整继承层次。
为什么 Ctrl+H 是首选,而不是 Ctrl+T 或 Ctrl+Alt+U
Ctrl+H 触发的是 Type Hierarchy 视图,它专为展示类的静态继承链设计:父类、子类、实现的接口,全部按层级展开。而 Ctrl+T 在部分旧版本中曾映射到类似功能,但自 PhpStorm 2020.1 起已统一为“Override Methods”(重写方法),不再显示继承图;Ctrl+Alt+Shift+U(或 Cmd+Option+Shift+U)调起的是 Diagrams 插件,生成的是 UML 类图,依赖文件选中范围和静态解析,不是“当前类的继承关系”而是“当前上下文的结构快照”。
-
Ctrl+H不需要选中任何内容,只要光标落在有效类名上(比如class User的User字母任意位置)就能响应 -
Ctrl+Alt+Shift+U必须提前选中一个或多个文件,或右键目录,否则无反应 -
Ctrl+T现在只弹出方法重写列表,跟继承图无关——如果你按了没出图,大概率是误信了过时教程
Ctrl+H 没反应?先检查这三件事
快捷键失效几乎都源于环境识别失败,不是快捷键被覆盖。
- 光标是否停在「可解析的类名」上?不能在注释里、字符串里、
@var后面、use语句的别名上;最佳位置是class MyClass中的MyClass任意字符 - 项目是否完成索引?状态栏右下角不显示 “Indexing…” 且没有红色感叹号;若刚打开项目,等几秒再试
- Composer 自动加载是否启用?
Settings > PHP > Composer中勾选 “Enable composer.json support”;否则外部包中的父类会显示为Unknown class,连线断开
Diagrams 插件生成的类图 vs Type Hierarchy 视图的区别
两者目的不同:Type Hierarchy(Ctrl+H)回答“这个类从哪来、能被谁继承”,是纵向继承链;Diagrams(Ctrl+Alt+Shift+U)回答“这几个类之间有哪些静态关联”,是横向结构快照。
立即学习“PHP免费学习笔记(深入)”;
-
Type Hierarchy默认显示完整继承树(可展开/折叠),支持键盘导航(↑↓切换节点,Enter跳转定义) -
Diagrams不自动包含trait,哪怕写了use Timestamps,也得双击节点后手动Space搜索添加 -
Diagrams对动态类型提示完全忽略,例如private $service = 'App\Services\Logger';不会被识别为依赖;而Type Hierarchy本来就不处理这种写法 - 导出时,
Type Hierarchy不支持导出,Diagrams推荐导出为PNG或PlantUML,避开.uml私有格式
真正卡住人的往往不是快捷键记不住,而是光标位置不对、索引没好、或把 Diagrams 当成继承图工具来用——它画的是“你选中的东西之间有什么关系”,不是“这个类在代码宇宙里站哪一层”。


















