前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >玩转 PhpStorm 系列(二):导航篇

玩转 PhpStorm 系列(二):导航篇

作者头像
学院君
发布2020-07-29 18:10:07
2K0
发布2020-07-29 18:10:07
举报
文章被收录于专栏:学院君的专栏学院君的专栏

概述

在日常使用代码编辑器的过程中,频率非常高的一个需求就是能够快速全局导航到指定类、文件、方法、行,在 PhpStorm 中可以通过两种方式来实现这种导航。

一种是在菜单栏中点击 Navigate,然后在下拉框选择对应的全局导航,Class 代表类、File 代表文件、Symbol 代表符号/标记(可用于导航到指定变量、方法)、Line 代表行(需要在特定文件中操作)。

另一种是通过快捷键,上面的菜单栏下拉框导航选项右侧已经标注了对应的快捷键,下面我们就可以快捷键为例在 Mac 系统中进行演示(Windows 操作类似,就是快捷键有差异)。

导航到类、接口、Trait

打开一个新安装的最新版 Laravel 项目,以自带的 User 类为例,要导航到这个类,可以通过快捷键 Command + O 打开导航窗口,在输入框输入 User 进行类名的全局模糊匹配,然后在下拉选项中选中要导航的类:

就会打开包含 User 类的文件了:

导航到其他类也是一样,这里不重复演示了。除了项目代码,还可以导航到 Composer 管理的 vendor 库中的所有第三方扩展包代码,比如我们想要查看 User 的父类 Model

另外,导航到指定接口和 Trait 共用了导航到指定类的功能,比如我们在类导航输入框中输入 Authenticatable,则会列出对应的接口和 Trait:

导航到文件

在遵循 PSR-4 自动加载规范的现代 PHP 项目中,类名和文件名是一致的,所以导航到类也就意味着导航到了对应的文件,但对于一些不包含任何类的 PHP 文件,还是需要通过导航到文件功能进行跳转,比如应用初始化/启动文件、配置文件、路由文件以及定义 PHP 辅助函数的文件等。

我们可以通过快捷键 Shift + Command + P 文件打开导航到文件的操作界面,假设我们想要打开 Laravel 项目的数据库配置文件,可以在输入框输入 database 进行文件名的全局模糊匹配,然后在下拉框选中我们期望打开的文件:

即可跳转到对应的 database.php 配置文件:

如果想要打开定义 Laravel 自带辅助函数的 helpers.php 文件,操作方法完全一样,只需在导航输入框中输入对应文件名即可:

导航到属性、方法

除了类名和文件之外,PhpStorm 还支持更细粒度的 PHP 属性和方法导航,我们通过快捷键 Option + Command + O 打开对应的导航操作界面,假设我们想要在应用代码的 Kernel 类中新增一个全局中间件,可以在输入框输入 middleware 跳转到到这个属性中进行设置:

该方法也适用于变量名的全局导航:

导航到指定的类/Trait成员方法或者独立的 PHP 函数也是在同一个操作界面操作,比如我们想要查看 Laravel 自带的分页方法底层是如何实现的,可以在输入框输入 paginate,然后选择我们想要查看的方法实现即可:

再比如,我们想要查看 Laravel 自带的 view 函数是如何实现的,在输入框输入 view 并选中要导航的方法即可:

跳转到行、列

最后,在已打开的当前文件中,可以通过 Command + L 打开行列导航操作界面,输入要导航到的行号、列号即可,其中行和列通过「行号:列号」进行区分和解析:

列号一般不设置,默认值为 1

在图形化 UI 界面中,通常跳转到指定行、列的需求不大,我们可以通过鼠标和触摸屏快速定位到指定位置。

汇总导航

针对类、文件、属性、方法的导航,除了通过上述方式使用各自独立的快捷键和操作界面进行导航外,在 PhpStorm 中,还可以通过 Shift + Shift 快捷键(连按两次 Shift 键)打开汇总导航操作界面(对应的功能叫做 Search Everywhere),一次输入,就可以全局匹配出所有相关的类、文件、属性、方法:

是不是非常方便?之所以叫做「Search Everywhere」,是因为除了这些导航功能之外,还可以通过 Actions 对 PhpStorm 系统设置进行快速定位(这个我们后面会单独介绍),换言之,你想要搜索的一切都可以通过这个输入框完成,也正因为这个原因,该功能对应的快捷键才能位于 PhpStorm 默认开机界面的榜首:

日常我们要做任何操作,不管是找文件、找代码,还是进行系统设置,都可以通过 Shift + Shift 呼出导航界面进行快速跳转,它会成为你日常使用 PhpStorm 最频繁的快捷键操作。

上下文导航

以上导航都是全局导航,如果是在某一段具体的代码片段中,我们想要进行上下文导航,以 User 模型类的 posts 方法为例:

代码语言:javascript
复制
public function posts()
{
    return $this->hasMany(Post::class, 'user_id');
}

如果我们想要查看 hasMany 方法对应的实现代码,可以按住 Command 键(Windows 下对应的是 Ctrl 键),然后鼠标/触摸屏点击 hasMany 方法,即可跳转到对应的方法实现代码:

看完之后,想要快速切换回调用它的 posts 方法,通过快捷键 Command + [(切到操作序列中上一步代码的位置)即可,如果想再看看 hasMany 方法实现,通过 Command + ](切到操作序列中下一步代码的位置)即可快速切换。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 极客书房 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • 导航到类、接口、Trait
  • 导航到文件
  • 导航到属性、方法
  • 跳转到行、列
  • 汇总导航
  • 上下文导航
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档