Jeffrey Way 的 PhpStorm 设置 (2024 年)

发布于 作者:

Jeffrey Way's PhpStorm Setup in 2024 image

可以称之为年龄。如果你愿意,也可以说这是冷漠。我称之为满足。我二十多岁的大部分时间都花在了无休止地尝试和寻找完美的编辑器和工作流程上。当我再次读到这些话时,我有点尴尬。“真的吗?你二十多岁就是这么过的?”好吧,不全是。我也喜欢远足。但是,是的,如果新的编辑器上市了,我第一个去测试。

但那已经是很久以前了。快进到 2024 年,我已经记不起上次安装新的代码编辑器是什么时候了。在我看来,PhpStorm 多年前就赢得了 IDE 战争。他们设法在一个应用程序中融入的质量和功能真是令人惊叹。

因此,本着这种精神,我很乐意与您分享我的设置和总体工作流程。正如您很快就会看到,IDE 这个词不再意味着一个拥有数百个按钮的极其密集的 UI(尽管如果您愿意,它也是一个选项)。不,我更喜欢一种更简洁的方法,我认为您会喜欢它。 好的,让我们开始吧

默认设置适合我

说到配色方案,我花了十年才意识到,您 IDE 建议的默认设置通常是最佳选择。一个包含数百个主题的插件,每个主题在某些关键方面都存在不足,这并不是一种很好的体验。但是您编辑器的默认主题已经在所有可能的配置中经过了测试。

考虑到这一点,我最近的偏好是 PhpStorm 的 _深色_ 主题,与他们的“新 UI”(现在是默认布局)相结合。

同样,我也坚持使用默认的 _JetBrains Mono_ 字体,大小为 `15px`。是的,似乎年龄正在成为本文的反复出现的主题。现在对我来说 15 像素看起来不错。

您会注意到,我还隐藏了行号和制表符。这当然是一种个人偏好——对许多人来说是值得怀疑的——但是,值得尝试一整天。

如果您想尝试一下,就像 PhpStorm 的所有各种操作一样,您可以使用“_搜索任何内容_”菜单切换行号和制表符,该菜单默认为“_Shift + Shift_”键绑定。分别搜索“_行号_”和“_制表符位置_”。

对于文件遍历,我使用“_搜索任何内容_”和“_最近文件_”菜单的组合。更妙的是,由于 PhpStorm 的所有文件树都允许即时过滤,因此我只需要打开“_最近文件_”菜单并开始键入要打开的文件的前几个字符即可。这是一种非常快的操作流程。

插件

说到插件,事实是 PhpStorm 出于盒子就包含了您所需的大部分内容。对 Tailwind CSS、Vue、Pest、Vite 和 Node 的支持——仅举几例——从一开始就被捆绑在一起。

作为一个曾经的 Vim 用户,我永远不会放弃我在一年的时间里刻在我指尖上的键绑定,我会引入 IdeaVim,它实际上是一个 Vim 引擎。如果您想使用自定义 UI 和主题,请考虑安装 Material Theme UINordCarbon 插件。

但是——有一个非常重要的插件值得单独列出……

Laravel Idea 是秘密武器

PhpStorm 拥有一款秘密武器,我还没有见过任何竞争对手的编辑器能与之匹敌。 Laravel Idea 是一款廉价的第三方插件(提供 30 天免费试用),它对 Laravel 框架有着极其深刻的理解。

它直接在您的编辑器中提供强大的代码生成、Eloquent 属性自动完成、预填充验证规则、智能路由完成等等。Laravel Idea 是我唯一付费的插件,而且我毫不犹豫地付费。它就是这么好。

代码生成

当然,Laravel 和 Artisan 提供了多种从命令行触发的生成器。但是,如果您愿意,您也可以直接在 PhpStorm 中运行这些生成器。导航到菜单栏中的“_Laravel_”选项卡,然后选择“代码生成”。

在这里,您可以选择要生成的所需文件类型。速度非常快。

值得注意的是,在生成 Eloquent 模型时,您将看到一个专门的对话框,用于配置所需的字段、关系和选项。

在这里,我可以声明模型的所有适当字段,并切换在此过程中应生成的任何配套文件。

自动验证规则

让我们看另一个例子。假设您在路由文件中有一个端点,它将一个新的 `Job` 存储到数据库中。当然,您应该首先验证请求数据。与其手动编写规则,不如让 Laravel Idea 为您完成。

Route::post('/jobs', function () {
request()->validate([
//
]);
});

将光标置于 `validate()` 数组中,按 _Cmd + n_,然后选择“添加 Eloquent 模型字段”。键入相关模型的名称 `Job`,插件将使用相应的规则填充数组,如下所示

Route::post('/jobs', function () {
request()->validate([
'employer_id' => ['required', 'exists:employers'],
'title' => ['required'],
'salary' => ['required'],
]);
});

很有用!Laravel Idea 提供了无数类似的省时功能。在我看来,对于每个 Laravel 用户来说,它都是必不可少的插件。

重构这个

使用专用 IDE 的最佳理由是,您_想要_一个能够深入理解您的底层语言的编辑器。如果我需要重命名变量、实现接口或提取方法,我不想依赖正则表达式或第三方扩展。我希望这些功能融入到编辑器中。我希望这些功能正常工作与 Jetbrains 的财务成功直接相关。

如果您和我一样,您可能在这一点上已经从耳朵里听到了键盘快捷键。令人难以置信的是,我们可以记住如此多的快捷键,这些快捷键遍布各种应用程序。考虑到这一点,虽然 PhpStorm 的每个重构选项都有相应的快捷键,但我使用万能的“_重构这个_”菜单,我将其绑定到 _Ctrl + t_。_打开“搜索任何内容”并键入“重构这个”_以手动打开菜单。这将显示一个顶级重构菜单,此时我可以选择首选的重构。

与往常一样,开始键入以立即过滤菜单项。如果我需要,比如提取一个方法,我会键入“_extract_”并按_回车_。这样,我就不必再使用鼠标了。

集成的终端

从 PHPStorm 2024 版开始,您会发现一个新的集成终端 UI,它比之前的版本有了很大的改进。

它现在支持自动完成、命令历史记录(按向上键)、独立的命令块等等。我建议将集成终端绑定到一个你会记住的快捷键 - 我更喜欢“Ctrl + ` (反引号)”或现在,你可以在不离开编辑器的情况下快速切换终端。

无缝测试

在 PhpStorm 中进行测试非常容易。无论你更喜欢 PHPUnit 还是 Pest,它都能满足你的需求。打开任何测试类或文件,你都会在每个测试定义旁边找到一个运行图标。点击它即可直接在编辑器中孤立地运行单个测试。

当然,并非每个测试都能通过。因此,经常需要在项目中的任何位置重新运行上一个测试。这样,你就可以打开一个类,进行更改,并立即重新运行失败的测试,以确认问题已解决。

你想要执行此操作的命令是“重新运行”。为了避免触碰鼠标,可以考虑分配一个键绑定,例如“Shift + Command + T.”。

提示:你可以在设置 → 键映射中配置自己的键绑定。

在上面的屏幕截图中,请注意,Comment.php 中的注释行触发了测试失败。让我们通过取消注释该行(如果所有错误都这么容易解决就好了)并重新运行测试(使用Shift + Command + T)来修复问题。

哇!

自动格式化

PhpStorm 当然支持多种代码风格的自动代码格式化。在设置菜单中,访问编辑器 → 代码样式 → PHP,然后点击“”选择你的风格。

这很有用,但如果你更喜欢使用外部代码格式化程序,例如 Laravel Pint,你可以轻松地指示 PhpStorm 禁用其内部格式化程序,转而使用你的外部工具。这正是我所做的事情。

再次打开设置菜单,然后访问PHP → 质量工具。在这里,你会发现一些外部格式化程序。选择“Laravel Pint”,你就可以开始使用了!

接下来,如果我们能够指示 PhpStorm 在每次保存文件时执行一系列操作或命令,那就太好了。例如,格式化文件、优化导入(排序和删除未使用的导入)、清理代码、运行 ESLint 等等。这就是“保存时操作”菜单的作用。你可以在设置菜单中访问它,就像往常一样:工具 → 保存时操作

选择你喜欢的操作,编辑器将在你每次保存文件时执行这些操作。

调试

尽管它的创建者可能建议 - 👀 - Xdebug 经常让人沮丧地安装。不过,很明显,PhpStorm 团队意识到了这一点。他们出色地完成了工作,使这个过程尽可能简单明了。让我来演示一下。

你的调试之旅的第一站是设置 → PHP → 调试。在这个页面上,你会看到一个“预配置”清单,用于验证你是否已正确安装 Xdebug。很有帮助!

这个清单大致包含安装 Xdebug、选择浏览器工具栏扩展、启用监听 PHP 调试连接,然后启动调试会话。我强烈建议你使用 PhpStorm 在预配置步骤一中链接的验证器。

验证提示!如果你使用 Herd Pro 来自动检测并启用 Xdebug,如果只是从命令行(php —info | pbcopy)直接复制phpinfo() 的内容,那么 PhpStorm 的配置验证器将失败。相反,请向 Herd 发出信号,表明你打算使用 Xdebug。一种方法是在设置断点时。点击任何行号的侧边栏。接下来,回显phpinfo() 并直接从浏览器中复制其输出。

完成预配置清单中的每个步骤后,你就可以开始调试了。设置一个断点,加载页面,然后开始像冠军一样进行调试。

结论

就这样了!

你可能已经注意到了,但程序员往往有……自己的观点。说到代码编辑器,他们的观点就更多了。当然,选择最适合你的个性和工作流程的工具,但我真的认为 PhpStorm 值得你花时间。我已经使用它很多年了,我不断发现以前不知道的新功能和省时功能。

如果我激发了你的兴趣,我们有一个很棒的,并且 Laracasts 上有一个免费的 PhpStorm 课程。在 2.5 个小时内,我们将向你展示所有你需要了解的内容。🚀

Jeffrey Way photo

嗨,我是 Jeffrey。我是 Laracasts.com 的创建者,我大部分时间都花在构建网站和思考教授复杂概念的新方法上。我和我的妻子和两个孩子住在佛罗里达州奥兰多。

Cube

Laravel 新闻

加入 40,000 多名其他开发者,绝不错过新的技巧、教程等等。

Laravel Forge logo

Laravel Forge

轻松创建和管理你的服务器,并在几秒钟内部署你的 Laravel 应用程序。

Laravel Forge
Tinkerwell logo

Tinkerwell

Laravel 开发人员必备的代码运行器。使用 AI、自动完成和对本地和生产环境的即时反馈进行 Tinker。

Tinkerwell
No Compromises logo

绝不妥协

Joel 和 Aaron,两位来自 No Compromises 播客的经验丰富的开发者,现在可以为你的 Laravel 项目提供服务。⬧ 固定价格 7500 美元/月。⬧ 没有冗长的销售流程。⬧ 没有合同。⬧ 100% 退款保证。

绝不妥协
Kirschbaum logo

Kirschbaum

提供创新和稳定性,以确保你的 Web 应用程序成功。

Kirschbaum
Shift logo

Shift

运行旧版本的 Laravel 吗?即时、自动的 Laravel 升级和代码现代化,让你的应用程序保持新鲜。

Shift
Bacancy logo

Bacancy

只需 2500 美元/月,即可使用拥有 4-6 年经验的经验丰富的 Laravel 开发人员为你的项目注入活力。获得 160 小时的专业知识和 15 天无风险试用。立即预约通话!

Bacancy
Lucky Media logo

Lucky Media

现在就加入 Lucky - Laravel 开发的理想选择,拥有十多年的经验!

Lucky Media
Lunar: Laravel E-Commerce logo

Lunar:Laravel 电子商务

Laravel 的电子商务。一个开源软件包,将现代无头电子商务功能的力量带入 Laravel。

Lunar:Laravel 电子商务
LaraJobs logo

LaraJobs

官方 Laravel 招聘网站

LaraJobs
SaaSykit: Laravel SaaS Starter Kit logo

SaaSykit:Laravel SaaS 启动工具包

SaaSykit 是一个 Laravel SaaS 启动工具包,它包含运行现代 SaaS 所需的所有功能。付款、漂亮的结账流程、管理面板、用户仪表盘、身份验证、现成的组件、统计信息、博客、文档等等。

SaaSykit:Laravel SaaS 启动工具包
Rector logo

Rector

你无缝升级 Laravel、降低成本和加速创新的合作伙伴,帮助企业取得成功

Rector
MongoDB logo

MongoDB

通过 MongoDB 和 Laravel 的强大集成来增强你的 PHP 应用程序,使开发者能够轻松高效地构建应用程序。在使用熟悉的 Eloquent API 的同时,支持事务、搜索、分析和移动用例。了解灵活的现代数据库 MongoDB 如何改变你的 Laravel 应用程序。

MongoDB
Maska is a Simple Zero-dependency Input Mask Library image

Maska 是一个简单的无依赖性输入掩码库

阅读文章
Add Swagger UI to Your Laravel Application image

将 Swagger UI 添加到你的 Laravel 应用程序

阅读文章
Assert the Exact JSON Structure of a Response in Laravel 11.19 image

在 Laravel 11.19 中断言响应的 JSON 结构完全相同

阅读文章
Build SSH Apps with PHP and Laravel Prompts image

使用 PHP 和 Laravel 提示构建 SSH 应用程序

阅读文章
Building fast, fuzzy site search with Laravel and Typesense image

使用 Laravel 和 Typesense 构建快速、模糊的网站搜索

阅读文章
Add Comments to your Laravel Application with the Commenter Package image

使用 Commenter 软件包向你的 Laravel 应用程序添加评论

阅读文章