VSCode 插件

存储图片到 Aliyun(推荐)

安装插件 Paste To Aliyun Oss

安装之后可以使用 ctrl + cmd + v 来将图片直接粘贴到阿里云并把地址复制到 vscode 中

本地图片粘贴 [Paste Image]

安装插件 Paste Image

安装之后可以使用 alt + cmd + v 来将图片直接粘贴到编辑器中,
直接粘贴的图片默认位置和命名并不符合我们的要求, 所以需要重新进行配置

配置日期的参考文档: Moment 格式

1
2
3
4
5
6
7
8
9
{
"settings": {
"pasteImage.basePath": "${projectRoot}",
"pasteImage.defaultName": "Y/MMDD/HHmmss",
"pasteImage.prefix": ".. image:: /",
"pasteImage.path": "${projectRoot}/_static/images/",
"pasteImage.encodePath": "none"
}
}

这样我们粘贴图片的之后就可以直接将文件粘贴到
/_static/images/2020/0131/191053.png 类似目录下

设置为中文语言


1). 查找是否安装中文插件

2). 设置选择中文语言

打开 View -> Command Palette 搜索 Configure Display Language, 选择 zh-cn

  1. 重启, 这样显示便是中文了

[转+] 解决 Webstorm 不支持 nodejs 等语法提示和补全

在使用 Webstorm 写 es6、node 的时候,会出现没有语法提示甚至是产生波浪线,例如常用的 require, import

不仅是内置函数语法,不仅是 js,在一些第三方 npm 库(比如 element-ui),在 vue/html 等上也被黄色背景色标上“未知标签名”的语法提示

既影响美观,又不支持代码候选补全,实在对不起 WebStorm 前端开发利器的称号。

解决方法

  1. 设置 Webstorm js 语法支持到 es6(或根据需要选择)

打开 :  Preferences | Languages & Frameworks | JavaScript

将 JavaScript Language version 更改为 项目所需要的版本,

  1. 下载 node 语法库

方法 1: 推荐

1
$ yarn add @types/node -D

方法 2: 依赖于编辑器

打开 : Preferences | Languages & Frameworks | JavaScript | Libraries

选择下载, 选中 node

下载完成后 启用 @types/node

  1. 不要过滤 node_modules 文件夹!

打开 Preferences | Editor | File Types; 取消 node_modules 此项

因为语法库就是在来自本机和当前项目的 node_modules文件夹中。

其实过滤 node_modules 文件夹是有一定道理的,它虽然总体积不大,每个文件体积也小,但是它文件数量巨大,特别是较大的项目,node_modules 包含的文件数量多似繁星…,如果让  Webstorm 加载进来,轻则出现一小段时间软件卡顿,重则电脑长时间崩溃,当然这和电脑的性能有关。所以有一些博客可能会建议开发者特别是初学者在设置中过滤掉 node_modules 文件夹。

虽然加载 node_modules 会让电脑卡顿一段时间,但是给 Webstorm 足够时间,在电脑性能不会太差的情况下还是可以加载完的,换来的编程便利还是值得的。

然后就慢慢等待加载完毕

加载完毕之后,如果当前项目下也有 node_modules,也会自动挂到 JavaScript Library 中

效果
设置后,不仅没有语法波浪线,在输入的时候已经有代码候选补全,并且按 ctrl 点击还能跳转查看源码

标签组件名也能补全

标签也不会出现语法背景黄色,并且还支持自定义属性参数的补全

参考文章

[译+] 使用 PhpStorm 开发 Laravel 应用

很多 PHP 程序员使用 laravel 创建他们的应用程序。laravel 是一个免费开源的 PHP web 应用程序框架。它基于多个 Symfony 组件,提供了一个开发框架,包括 authentication, routing, sessions, caching 等模块.
去年夏天, 我们介绍了 支持 Blade 。blade 是 Laravel 的模板语言, 对艺术家友好,这个 Laravel 程序员的命令行工具, 可以在 PhpStorm 中工作. 使用 Laravel 插件 和 Laravel IDE 帮助器, 我们可以进一步扩展 PhpStorm 对 Laravel 应用的支持。下面让我们看怎么做!

安装 Laravel IDE 助手

  • 官方方式

    首先确认 Composer 在我们的项目中是可用的, 我们可以使用 Composer | Add dependency… 右键菜单安装 Laravel 5 IDE Helper Generator 到我们的项目. 搜索 barryvdh/laravel-ide-helper,并且点击 Install 下载并添加到项目.

  • [译注]自助方式

    因为我们是在项目中使用, 所以我们在项目中添加这个功能, 在 composer.json 中添加 require-dev 分支
    laravel 4.* , 这里的版本应该填写 1.*

1
2
3
4
5
"require-dev": {
// ...
"barryvdh/laravel-ide-helper": "2.*"
// ...
},

然后使用命令 composer update -vvv 来更新程序包

注册 'Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider' 服务到我们的应用, 即写入到 config/app.php 中的 provider 中 , 这样在 artisan list 中便存在了ide-helper的命令, 运行 artisan ide-helper:generate, PhpStorm 就会有代码完成功能,并且有 Laravel 的语法高亮.

PhpStorm 中的 Laravel 插件

为了进一步提升我们的 Laravel 体验,我们也可以安装 Laravel 插件. 在 Settings (Preferences) | Plugins, 点击 Browse repositories… 按钮并搜索 Laravel. Install plugin 按钮会下载并安装插件到 IDE.

重启 IDE 并启用插件( Settings (Preferences) | Other Settings | Laravel Plugin | Enable Plugin for this Project). PhpStorm 知道 Laravel 的界面做什么, 并且提供(controllers,views, routes, configuration, translations、等)的代码完成功能!

当然不只是代码自动完成,使用 Ctrl+Click (CMD+Click Mac OS X) 或者 Go To Declaration(转到定义) (Ctrl+B / CMD+B), PhpStorm 将会导航到那里, 比如配置项的声明。
关于使用 Blade 模板,Laravel 插件也可以提高体验, 比如:@section 指令的自动完成.
想了解更多吗? 查看我们的 Laravel 教程,这里包含了 PhpStorm 为 Laravel 开发准备的全部东西, 包括代码自动完成,导航,自动代码检查,命令行工具支持,调试和单元测试!

还可以在composer.jsonpost-update-cmd中加入命令保证 helper在每次 update 的时候都会更新,如下:

1
2
3
4
5
"post-update-cmd": [
"php artisan clear-compiled",
"php artisan ide-helper:generate",
"php artisan optimize"
],

另外,如果你的 model 是 extend 的 Eloquent,这个插件还可以给项目中的 model 添加 phpDoc,直接显示字段名,便于阅读,用法

1
php artisan ide-helper:models User

需要修改composer.json,在 require-dev段添加

1
2
3
"require-dev": {
"doctrine/dbal": "~2.3"
},

参考文章:

[原] 在 PhpStorm 中使用 Xdebug 远程调试 PHP 程序(框架/原生均适用)

序言

Xdebug 作为 PHP 调试工具,提供了丰富的调试函数和配置,可以直观的看到 PHP 源代码的步进和性能数据,以便优化 PHP 代码。

使用 phpstorm + xdebug 来调试 php 程序是借助强大的 IDE 监听功能, 更方便的调试程序. 提高我们的编码效率, 固然 var_dump, print_r 等函数也能提供相应的功能, 但是自动化的工具更能够事半功倍. 下面我根据自己的使用介绍下如何进行调试和配置.

一种方式是用外部设置的 session, 另外一种是在 phpstorm 中配置页面入口然后使用内置的监听来访问, 原理相同, 下面我们从原理开始讲解

调试原理

配置调试环境

1) 配置 xdebug

这里使用了最小化配置, 对于 profile 等功能没有配置

1
2
3
4
5
[xdebug]
zend_extension="/usr/local/opt/php70-xdebug/xdebug.so"
xdebug.remote_enable=1 # 启用远程调试
xdebug.remote_connect_back=1 # 忽略 remote_host 配置, 不关注主机配置, 开发者使用最舒服
xdebug.remote_port=9050 # 监听端口

注意 这里监听端口默认是 9000 , 和 php 默认监听重复, 注意尽量不用使用 9000, 以免出现不生效的情况.

2) 设置 phpstorm 配置并开启监听

这里是让 phpstorm 通过监听端口的方式获取到 xdebug 断点传送过来的数据

2.1) 配置端口

我们这里监听的是 9500 端口, 和 xdebug 配置监听数据端口一致

2.2) 开启 phpstorm 数据监听

切换 “开始监听 PHP 调试连接” 按钮。

3) 在 phpstorm 中设置断点

点击行号右侧空白, 设置断点

4) 设置 debug session

debug session 的工具的目的是设置一个 cookie, 让每次发送数据的时候都会携带这个 cookie, 从而识别监听.

4.1) 安装工具

安装 chrome 扩展 Xdebug helper

4.2) 点击 图标设置 session

已经设置了 cookie, Key 是 XDEBUG_SESSION, 值是 PHPSTORM, 我认为这里的值无关紧要, 对于 phpstorm 来说, 是能够监控到的.

5) 运行页面

这里我们在断点位置可以看到输出的内容项目

另一种方式: 内部调用

这里的另外一种方式的服务器配置方式和流程完全一致, 就是第四步和第五步有所不同, 实现的原理是在 phpstorm 中设置运行的服务器, 然后通过 debug 模式自动设置 XDEBUG_SESSION, 并且自动开启监听.

内部调用: 4) 设置 debug session

4.1) 设置 web 访问的服务器

例如我这里的本地域名是 l.dailian.sour-lemon.com, 我们需要配置一个本地服务器来打开这个页面, 我们首先配置一台服务器.

注意 这里的配置的域名是你本地已经配置好开发环境的域名, 端口号是 本地开发所使用的端口, 我这里是 l.dailian.sour-lemon.com 和 80

4.2) 配置调试页面

我们这里创建的调试页面的类型是 PHP Web Application, 服务器选择的是刚才已经建立好的服务器

内部调用: 5) 运行测试页面

这样运行的情况下上面的 2.2) 开启phpstorm 数据监听 步骤可以忽略掉, 这里不需要开启这个监听.

5.1) 开始 debug

点击 debug 按钮, 这里会自动打开一个页面并且传递一个唯一的 ID(可能是进程 ID)作为 debug 值

打开的 url 地址是: http://l.dailian.sour-lemon.com/?XDEBUG_SESSION_START=13608, 这里的数值是会变动的.

5.2) 查看 debug 面板

打开 debug 面板, 会看到相对应的监听 idekey, 这里和上一步设置的 key 是一致的, 同样也和 cookie 中的设置的 XDEBUG_SESSION 值一致

其他帮助

1. 查看兼容性

第一次运行的时候可以通过 phpstorm 自带的工具来检查配置的兼容性.

Run > Web Server Debug Validation

2. debug 帮助面板说明

左侧

绿色三角形 : Resume Program,表示將继续执行,直到下一个中断点停止。

红色方形   : Stop,表示中断当前程序调试。

上方

第一个图形示 : Step Over,跳过当前函数。

第二个图形示 : Step Into,进入当前函数內部的程序(相当于观察程序一步一步执行)。

第三个图形示 : Force Step Into,強制进入当前函数內部的程序。

第四个图形示 : Step Out,跳出当前函数內部的程式。

第五个图形示 : Run to Cursor,定位到当前光标。

框架说明

Frames : 加载的文件列表

Variables : 可以观察到所有全局变量、当前局部变量的数值

Watches : 可以新增变量,观察变量随着程序执行的变化。

参考文章

[原] 在 PhpStorm 中使用 Xdebug 生成 php 的 Profiler

说明

以下内容摘抄自 profiling PHP 脚本

xdebug 的 profiler 是一个强大的工具,它能分析 PHP 代码,探测瓶颈,或者通常意义上来说查看哪部分代码运行缓慢以及可以使用速度提升。Xdebug 2 分析器输出一种兼容 cachegrind 文件格式的分析信息。这允许你能使用出色的 KCacheGrind 工具(Linux,KDE)来分析你的 profiling 数据。在 Linux 可以使用你最喜欢的包管理器安装 KCacheGrind。

在 windows 系统上,有预编译的 QCacheGrind 二进制程序(QCacheGrind 是没有 KDE 绑定的 KCacheGrind)。

在 Mac OSX 系统上,这里也有怎样安装 QCacheGrind 的说明

Windows 用户可以选择性的使用 WinCacheGrind。它的功能不同于 KCacheGrind,所以 这个页面的 KCacheGrind 使用文档章节不适用于这个程序。WinCacheGrind 目前不支持 Xdebug 2.3 引入的 cachegrind 文件格式的的文件和函数压缩。

这也有一种可替代 profile 信息演示的工具叫做 xdebugtoolkit。一款基于 web 前端叫做 Webgrind,和一款基于 java 的工具叫做 XCallGraph

如果你不能使用 KDE(或者不想使用 KDE)的 kcachegrind 包,可以用 perl 脚本 “ct_annotate”,它能从分析器跟踪文件生成 ASCII 输出。

配置

1) Xdebug 配置

这里依旧使用最小化配置

1
2
3
4
5
; profiler
xdebug.profiler_enable = 0; ; 关闭永久生成profiler
xdebug.profiler_enable_trigger = 1; ; 启用 session 触发 profiler
xdebug.profiler_output_dir = "/data/profiler_dir" ; 输出的目录
zend_extension = "/usr/local/opt/php70-xdebug/xdebug.so"

配置完成之后重启 php-fpm 或者 apache

2) 安装 xdebug 工具

安装 chrome 扩展 Xdebug helper

3) 启用 Xdebug helper 的 profiler 工具

4) 刷新页面, 查看设定的文件夹

在上边设定的文件夹中会生成 profiler 文件

Xdebug 生成的结果是 CacheGrind 格式

5) 使用工具来分析 profiler 文件

这里我使用 phpstorm 的分析工具来查看

Tools > Analyze Xdebug Profiler Snapshot

选择生成的 输出文件, 可以看到文件的解析信息, 这个对于分析自己写的php代码会有很大益处

参考文档

[原] 版权 Copyright 和 Phpstorm

在编写代码时候,常会在代码顶部的地方放上 Copyright 的年份, 如果在新年来临时候, 我们的版权信息还没有更新, 则会落后的. 但是手工更新或者是批量替换会产生大量的工作量或者错误. 为了解决这个问题, PHPStorm 有个绝佳解决方案就是 版权自动更新机制(插件).

进入设置

搜索并且找到版权设置项目(新版 IDE 已经集成, 不需要安装), 如果是老版本需要搜索并且安装 copyright 插件

版权的参数可以查看官方链接:
Copyright Profiles

设置版权范围 Scope

并不是所有的文件都需要同样的版权信息, 我们在需要的目录中添加版权, 这就用到 PHPstorm 的 Scope (范围) 功能.

首先设置范围并且设置为共享模式

搜索 scope, 找到设置项目, 根据文件夹来进行选择, 排除等设置,最后勾选底部的 Share Scope

设置版权和 Scope 关联

找到 Copyright 主设置项目, 添加并且关联

更新版权

这里需要注意的是在版权设置中有个查找位置.

这一行的意思是在注释中根据正则来查找符合此规则的注释并且更新为当前版权. 默认是 Copyright 因为每个版权声明中肯定存在 Copyright 这个字串, 如果你的文件中没有这个匹配项目, 则会在文件底部添加版权信息.

我们右键需要更新版权信息的文件夹, 这样则版权信息就更新了.

不同语种的设置

在不同的语种中会有不同的版权信息格式, 注释格式, 在菜单项目中可以根据多语种来设置不同的格式化信息.体验很好

参考文章

[译+]在 PhpStorm 中配置 Phpunit 的 Test Suite

原文地址 : https://www.liamnorman.com/phpstorm-testsuites/

我是测试驱动开发(TDD)的忠实粉丝,我相信测试可以验证代码库的可靠性和稳定性, 我相信使用 TDD 可以创建稳定的系统并有效地测试软件,确保我的设计符合我想要解决的问题。我倾向于经常进行测试,因为这样就会非常清楚如果系统中的一个变化破坏了什么东西,我马上就知道那是添加的东西并定位到问题所在。Robert “Uncle Bob” Martin 以一种非常优雅的方式总结了这个测试方法
说道 :

每小时都会写几个测试。每天都有写几十次测试。每个月都有几百次测试。在一年的时间里,你将编写数以千计的测试。你可以保留所有这些测试,并随时运行它们! 你什么时候运行它们呢? 任何时间! 任何时候你做了任何改变都可以运行!

如果你采用这种方法,那么必须经常运行你的测试套件Test Suites,并且以快速和有效的方式运行,作为你工作流程的一部分,从长远来看将节省你的开发时间

我在我的大多数时间开发中使用 PHPStorm, PHPStorm 有一个很棒的单元测试功能,你可以使用它从你的 IDE 运行测试。我们将介绍如何在项目设置并使用 PHPUnit.

设置 PHPStorm Test Suit

在我们的例子中,我们会使用 PHPUnit,这是一个我经常使用的测试框架,目前的测试套件特性支持 PHPSpec, Codeception 和 Behat (默认)

访问 Test Frameworks 选项

开始前, 打开设置菜单, 并且选择 Languages & Frameworks > PHP > Test Frameworks

在这里点击添加按钮 并且选择本地 phpunit

PhpUnit Test Suite 配置

在我的项目中使用 composer 来管理所有依赖, 所以我这里选择使用 composer autoloader , 选择 phpunit 的可执行文件路径, 在现在这种加载模式下, phpunit 在 vendor 文件夹中

你可以选择设置一个默认配置文件,在本例中我设置为 phpunit.xml ,因为 PHPUnit 就是在这个文件中来定义测试套件(Test Suites)的, 如果你的项目中存在启动文件, 则这里可以设置这个文件,否则留空

就是这样,简短有效。您现在已经在 PHPStorm 中将 PHPUnit 配置为一个测试框架了.

设置运行配置快捷键

运行测试的一种非常有效的方法是使用快捷键, 为了设置快捷键, 我们进入菜单进行绑定

我们进入配置中, 设置两个快捷键
**Run Context Configuration **
这里允许你运行完整的单元测试套件. 我经常设置为 Option + T 
**Run with Coverage Context Configuration **
这里可以运行单元测试并可以检测代码的测试覆盖率, 这里我使用 Option + C

运行测试

这里就可以使用快捷键来运行单元测试了.

配置 TestSuites

如果要执行指定的分组的单元测试,我们可以做如下设定

1
2
3
4
<testsuite name="clear">
<directory>./modules/finance/tests/Clear</directory>
<directory>./modules/user/tests/Clear</directory>
</testsuite>

在配置单元测试的选项中, 我们可以使用 Edit Configurations  面板

这样我们便可以运行整套的单元测试了

[转]如何使用 Phpstorm 中的部署(Deployment)功能

原文地址 : 如何在 Webstorm/Phpstorm 中设置连接 FTP,并快速进行文件比较,上传下载,同步等操作

Phpstorm 除了能直接打开 localhost 文件之外,还可以连接 FTP,除了完成正常的数据传递任务之外,还可以进行本地文件与服务端文件的异同比较,同一文件自动匹配目录上传,下载,这些功能是平常 IDE,FTP 软件中少见的,而且是很耗工作时间的一个操作。换句话说,在 Webstorm/Phpstorm 中操作 ftp 能找到原来版本控制的感觉。唯一的缺点是:上传,下载的打开链接要稍费时间,适合的场景在于单文件的编辑,这个如果网速够快一般可以忽略,而且就个人体验,虽然链接的速度稍慢,传输的速度并不慢。

  1. 设置: 设置的入口有两处,

a. Tools->Deployment->configruation

b. File->Settings->Deployment->configruation

单击左上角加号新增一个 FTP 服务连接 然后配置 FTP host,username,pwd 等信息,配置好之后,可以 Test FTP connection 测试 FTP 是否连接成功。 然后点击 Root path 三点,如果有 FTP 服务端的目录读取出来,那就没问题,如果读取不出来,则在下面的 Advanced options 中选择 Passive mode(被动模式)。 然后在 Web server root URL 中填写域名信息或者空间商提供的免费三级域名。 然后在 Mappings 选择映射目录分别为本地,发布或 web 路径。

  1. 出口:

在与 ftp 连接的项目文件右击就能发现 deployment,分别有四个选项(这个选项只有在连接成功后才能显示):

1). upload to ...         上传到服务端

2). Download from ...     从服务端拉

3). Compare with Deployed Version on ...     本地版本与服务端版本进行比较

4). Sync with Deployed to ...     比较之外还可以直接进行操作.(3,4 的差别在于,3 只能浏览不能操作,4 可以操作)。

  1. 显示扩展面板     Tools->Deployment->configruation->Browse Remote host

成功打开之后:

打开的目的在于对文件的方便编辑,可以这样操作:

  1. 快捷操作

a. 可以在 keymap 中添加相应的快捷键操作。

b. 可以在 toolbar 上添加常用的图标以方便操作,为了防止误操作,建议操作的图标之间最好有隔离图标,虽然误操作可以利用本地历史记录找回来,但工作效率可能有所下降。

另外提供除了版本控制之外的一份本地历史记录,多次挽救我于生死边缘:

右键 -> localhost history -> show history

Pub label 是对当前历史记录的一个名称记录

[译+] 常用 Phpstorm tips

摘自: Phpstorm Tips

1. 鼠标所在位置的持续性多选

按下 Alt+J 将光标所在位置的单词选择下一个并且添加到当前的选择项中, 重复以上步骤添加更多单词.

按下 Shift+Alt+J 移除最后一个添加的单词.

Mac 快捷键

按下 Ctrl+G 添加新位置

按下 Shift+Ctrl+G 移除最后的添加项

2. 鼠标区块选择

按下 Alt 并且拖动鼠标来选择多行区域. 你还可以通过拖动来创建一个包含跨多行选择的文本的选择框。

3. 滚动到项目面板的文件位置

要在项目面板中找到当前文件,请按 Scroll from source 按钮在项目树中找到该文件并将其滚动到可见位置。

4. 搜索类方法

要快速跳转到打开文件中的方法或属性,请按 Ctrl+F12 打开 File Structure 窗口,然后可以 模糊搜做 想要的方法。

文件结构窗口也可以通过在菜单中切换到 Navigate | File Structure 来打开。

比 Ctrl+F 好用

这比使用 Ctrl+F 搜索更准确,因为搜索是一个简单的文本搜索,它将找到成员用法和成员声明,几乎总是导致你在到达定义之前按几次 Enter 键。文件结构视图总是直接将您带到方法定义的位置.

Mac 快捷键

按下 Cmd+F12 来打开文件结构窗口

5. 跳转到 上一个/下一个 方法

按下 Alt+Up/Alt+Down 来跳转到当前类中的上一个/下一个方法

这些操作可以在 Navigate | Next Method / Previous Method 找到

PS: 你可以通过相同的快捷键跳转到 上一个/下一个 Html 标签

Mac 快捷键

按下 Ctrl+Up/Ctrl+Down 来跳转到上一个/下一个方法

6. 查看文档

当鼠标在方法上, 按下 Ctrl+Q 弹出 快速文档窗口, 并且显示该方法对应的文档, 按 Esc 关闭弹出窗口.

对于内置的 PHP 方法, 按下 Shift+F1 在浏览器中在php.net 打开该方法的函数介绍

这些操作在如下菜单中 - View | Quick Documentation Lookup - View | External documentation

Mac 快捷键

F1 以显示快速文档弹出窗口。

Shift+F1 打开外部文档。

7. 显示参数信息

很难记住一个函数的参数顺序, 例如 haystack / needle 的先后顺序.

将鼠标定位在函数调用的圆括号内,并按 Ctrl+P 显示函数的参数。

这在知道调用函数而不知道参数是什么的时候很有用,或者在查看代码时想要确定哪个参数是什么值。

参数信息操作在 : View | Parameter Info

Mac 快捷键

按下 Cmd+P 来显示函数参数

8. 跳转到匹配的括号

将鼠标放到代码块内的任何位置,并按 Ctrl+Shift+M 将光标跳转到匹配的大括号中。

括号包括 {},[], () 和 HTML 标签。

Mac 快捷键

Ctrl+M 来跳转到匹配的括号

9. 添加, 删除 & 复制行

Shift+Enter 在当前行后添加新行.

Ctrl+Alt+Enter 在当前行前添加新行.

Ctrl+D 复制当前行.

当鼠标没有选择内容的时候按下 Ctrl+C/X 来复制/剪切 当前行到粘贴板.

按下 Ctrl+Y 来删除当前行.

Mac 快捷键

Shift+Enter 在当前行后添加新行.

Cmd+Alt+Enter 在当前行前添加新行.

Cmd+D 复制当前行.

当鼠标没有选择内容的时候按下 Cmd+C/X 来复制/剪切 当前行到粘贴板.

按下 Cmd+Backspace 来删除当前行.

10. 跳转到声明/定义位置

要导航到标识(变量,方法,类等)的定义位置,请按住 Ctrl 键,同时将鼠标指针悬停在符号上以将其转换为超链接,然后单击标识跳转到定义的位置。

您也可以在光标位于标识上时按 Ctrl+B,或在菜单中点击 Navigate | Declaration

Mac 快捷键

按住 Cmd 键并单击以导航到定义位置。按 Cmd+B 导航到定义位置。

11. 切换大小写

选中文本并, 使用 Ctrl+Shift+U 来切换选中文本的大小写.

你可以使用 Edit | Toggle Case 操作

Mac 快捷键

使用 Cmd+Shift+U 来切换选中文本的大小写.

12. 从历史记录粘贴

PhpStorm 在剪贴板中保存一个最近条目的列表。按 Cmd+Shift+V 查看剪贴板条目列表。

剪贴板历史也可以从菜单中打开: Edit | Paste from history

添加一些内容到粘贴板会添加到列表的顶部. 从粘贴板中粘贴以往的历史记录也会把这条记录在历史记录中置顶.

可以通过选择条目并按 Delete 键从历史记录列表中删除条目。

Windows/Linux

使用 Ctrl+Shift+V 查看剪贴板历史条目.

13. 导航到类

按 Cmd+O 调用 “Open Class” 对话框并开始输入以查找项目中的任何类。

这是一种非常快速和精确的导航方法,不应该被忽视。

模糊搜索

如果搜索项返回的结果太多,您可以使用 模糊搜索   添加到搜索项中并缩小结果范围。

PhpStorm 将识别搜索词中的任何大写字母,并尝试将这些字母与使用 CamelCasing 命名的类相关联。

如上面的录屏所示, HomepageController 可以通过搜索 Homepage 或模糊搜索 “HomeCont” 来打开。

如果仍然返回太多结果,则命名空间可以包含在搜索项中。示例中的完全限定类名称  App\Http\Controllers\HomepageController,因此可以尝试搜索 Contr\Home,它将匹配类名的 Controllers\HomepageController 部分,甚至可以搜索 ‘A\H\C\HC’ 来进行更有创意的搜索

Windows/Linux 快捷键

按 Ctrl+N 调用 Open Class 对话框。

14. 打开类的指定行

这个技巧建立在上一个技巧之上 (#13 导航到类)

使用 Open Class(或Open File)打开对话框时,可以使用 :123 为搜索查询添加后缀,以跳转到所选文件中指定的行号。

当在 PhpUnit,CI 服务器 或错误监视服务中引发错误并且您希望从堆栈跟踪导航到文件和行号时,这非常有用。

15. 自动滚动到项目文件位置

此提示按钮在提示#3 的头部位置。

要自动显示项目面板中的任何文件,请 在面板设置中启用 **Autoscroll from Source** 选项。切换到文件和在项目树中显示活动文件。

Autoscroll to Source 选项将自动打开在项目面板中选择的任何文件,这样只需单击即可打开文件。

16. 替换单引号/双引号

要在单引号和双引号之间切换字符串,请将光标放在字符串内的任意位置,然后按 Alt+Enter 以调用 intention actions  菜单,然后从菜单中选择Replace quotes

PhpStorm 还将识别字符串中是否有引号并使用黑色标记对其进行转义以防止格式错误的代码。

17. 转换数组语法

要将传统数组 array() 语法转换为简写 [] 语法,请将光标放在数组上,然后按 Alt+Enter 调用 intention actions 对话框,然后选择 Convert array to short syntax 选项。

如果数组具有嵌套数组,PhpStorm 将递归更新所有子数组。

18. 拼写修复

要解决你的代码的错误拼写,随时随地把光标放在拼写错误的单词,并按下 Alt+Enter 键来调用  intention actions   的对话框,然后选择  Typo: Rename to…

PhpStorm 将通过包含文本字段的弹出窗口提示您为该单词提供正确的拼写,或者提供自动填充列表,其中包含可供选择的拼写建议供您选择。如果您不喜欢自动填充列表中的任何内容,则可以开始键入以提供您自己的单词拼写。

在修复拼写错误时最好利用 PhpStorm,因为它会在整个代码库中重命名符号(变量,方法,类等)的每一次使用,从而完成所有繁重的工作。

19. 转换比较的位置

要将比较运算符两侧的值相互交换,请将光标放在运算符上,然后按 Alt+Enter 调用 intention actions 菜单,然后选择  Flip ‘X’

某些运算符更改参数的顺序可以更改条件的语义,因此在这种情况下,PhpStorm 将在菜单中显示 (change semantics) 警告。当您看到此警告时,请确保您的条件仍然有意义。

20. 生成 PHPDoc 文档

要让 PhpStorm 生成 docblock,请将光标放在方法上,然后按 Alt+Enter 调用 intention actions 菜单,然后选择 Generate PHPDoc for function .

PhpStorm 将为 @param 每个参数添加标签,并从提供的类型提示中包含其数据类型。@return 如果指定了返回类型,它也会添加一个标记,或者它检测到该函数返回的非空值。

如果 PhpStorm 无法准确检测标签的数据类型,它将使用数据类型 mixed 或完全省略数据类型。在这些情况下,请记住自己提供数据类型,如果不准确,请更正。

如果函数参数发生更改,PhpStorm 还可以为您更新 docblock,只需再次调用 intent actions 菜单并选择 Update PHPDoc Comment.

21. 初始化字段

通常,传递给构造函数的参数存储在属性中,以供类的其余部分使用。PhpStorm 可以使用构造函数的方法参数创建这些属性,只需几个键击操作即可。

将光标放在构造函数的参数列表中的任意位置,然后按 Alt+Enter 以调用 intention actions 菜单,然后选择 _Initialize fields_。系统将提示您要选择初始化的字段,   您可以选择一个或多个字段,或按 Ctrl/Cmd+A 选择列表中的每个字段。

PhpStorm 将为每个选定的字段创建一个新的私有属性,并在它的相应参数后命名,并使用值初始化它。它还将设置 docblock 并尝试标识识别的字段的数据类型。

22. Emmet

PhpStorm 已经内置了对 Emmet  缩写的支持; 只需在 HTML 文件中键入类似 CSS 的缩写,然后按 Tab 键将其展开为完整标记。

23. Emmet 预览

打开设置对话框并导航到 Editor | Emmet | HTML,检查  Enable abbreviation preview(启用缩写预览) 设置。然后 PhpStorm 将在编写 Emmet 缩写时显示生成预览的弹出窗口。

24. 代码模板

代码模板(在其他编辑器中也称为片段)允许您轻松地将常用的代码构造插入到代码中。

只需键入缩写,然后按 Tab 键将其展开为完整的代码构造。模板可以包含一个或多个变量或占位符以插入代码,按 Tab 键将光标移动到下一个变量/占位符。

按 Cmd/Ctrl+J 查看 Insert Live Template(代码模板)  弹出对话框,其中列出了当前文件语言的所有可用代码模板。也可以通过 Code | Insert Live Template…   菜单项操作。

25. 自定义代码模板

PhpStorm 允许您创建自己的代码模板(代码片段)以优化您的工作流程。

打开设置对话框并进入 Editor | Live Templates,你可以看到按语言分组的可用代码模板。要添加新模板,请单击 +(加号)按钮,然后选择 _Live Template_。指定缩写(你输入的文本的缩写,将扩展为完整的代码段)和描述。

然后在 Template text 字段中提供完整的代码段  。您可以在模板中以 $<variable name> 格式和$END变量作为特殊变量,指示在扩展模板之后光标的最终位置以及为所有变量提供的值。

接下来,单击 Define 以指定模板所用的语言以及可用的上下文。

现在可以使用模板了。打开文件并键入先前指定的缩写,然后单击 Tab 以展开模板。光标将定位在第一个变量上,提供一个值然后点击 Tab 以继续浏览所有可用变量。光标的最终位置将是 $END 变量的位置

示例模板

以下是可以添加到自己的工作流程的一些示例模板:

test: Test 方法

1
2
3
4
5
/\*\* @test \*/
public function it\_$NAME$()
{
$END$
}

dd: Dump & Die

1
die(var_dump($END$));

bsinput: Bootstrap 表单输入

1
2
3
4
<div class="form-group">
<label for="$ID$">$LABEL$</label>
<input class="form-control" id="$ID$">
</div>

log: Console 日志

1
console.log($END$);

26. 重命名模型

按 Ctrl+T (Windows/Linux: Ctrl+Shift+Alt+T)   调用 Refactor This 弹出窗口,或在菜单中选择 Refactor | Refactor This

或者,按 Shift+F6 直接调用光标下标识的重命名操作。

对于某些符号,如全局范围中的变量,PhpStorm 将调用重命名对话框,而不是 in-place(实时) 重命名符号。对于其他符号,例如类方法,PhpStorm 将在  Find tool window  中预览更改,以便您在应用它们之前查看将要进行的更改。

27. 找到类/方法的使用位置

PhpStorm 可以在整个项目中找到标识符的所有使用位置; 这包括引用和实例化类的所有地方,调用方法的任何地方,字段写入和读取的所有位置等。

要查找标识符的所有用法,请按住 Cmd 键(Ctrl for Windows / Linux),然后将鼠标悬停在符号声明上以将其转换为超链接,然后单击标识符以打开 Usages popup ,其中将列出标识符的用法。

图标强调了正在写一个值到标识符的用法

图标显示从标识符读取数据的用法

或者,将光标放在符号声明上,然后按  Alt+F7  查找用法并在 Find 面板中打开它们。或者导航到 Edit | Find | Find Usages  来查找使用位置。

这与  #10 导航到声明相同; 所以你可以用 Cmd/Ctrl 点击一个符号用法来导航到标识符声明,然后用 Cmd/Ctrl 点击标识符声明来导航到它的任何一个用法。

28. 变量命名建议

在编写 foreach 循环时,PhpStorm 将根据数组的名称为数组项建议合适的变量名。因此,如果您的数组被称为  $items PhpStorm将建议  $item 单项形式的条目。

PhpStorm 足够聪明,能够找出像 people, octopioxen 这样的单词形式; 这个单词的复数形式我还没搞清楚呢((⊙﹏⊙)b)。

奖金

您可以通过 phpSuggestVariableName 在实时模板变量中合并表达式函数,在自定义实时模板中使用此功能  。

拓展

您可以通过 phpSuggestVariableName 表达式在实时模板变量使用,在自定义实时模板中使用此功能以便 PhpStorm 给你建议的单词写法。

29. 查看文件的位置

要在工具面板(项目面板,结构面板等)中选择当前正在编辑的元素(方法,属性,文件等),请按 Alt+F1 以调用 Select In 弹出窗口,然后选择要打开元素的面板在。

或者在菜单中打开  Navigate | Select In…

30. 操作导航

PhpStorm 允许您直接导航到所需的操作,而无需浏览菜单和工具栏,只使用键盘。它将操作定义为:

主菜单和各种上下文菜单的命令,通过主工具栏和工具窗口的工具栏按钮执行的命令。

按 Cmd+Shift+A(Ctrl+Shift+A on Windows/Linux)以显示 Actions 弹出窗口,该弹出窗口允许你按名称搜索操作。

31. 高亮使用

将光标放在符号上,按 Cmd+Shift+F7 (Ctrl+Shift+F7 on Windows/Linux) 以突出显示当前文件中符号的用法。符号的读取和写入用法将使用活动颜色方案提供的不同颜色显示。

要将光标跳转到符号的 下一个/上一个 匹配项,Mac 使用 Cmd+G/Cmd+Shift+G, 在 Windows/Linux 上按 F3/Shift+F3。

按 Esc 键停止突出显示用法。

32. 作为 Table 编辑

PhpStorm 可以在表格中编辑 CSV(或其他分隔符分隔文件)。

只需打开 CSV 文件并从上下文菜单中选择 Edit as Table… 即可打开表格弹出窗口。根据输入数据配置表弹出窗口,然后单击 OK 以表格形式查看数据。

这使数据更易于阅读,可以轻松插入列,并允许您使用特定列对数据进行排序;

33. 选择范围扩大/缩小

按 Alt+Up (Ctrl+W on Windows/Linux) 将选择从光标位置扩展到包含代码的上下文。

从上面的示例中,所做的选择如下:

  1. Variable name (excluding ‘$’)

  2. Variable element (including ‘$’)

  3. Expression

  4. Line

  5. Foreach body

  6. Foreach block

  7. If body

  8. If block

  9. Method body

  10. Method block

  11. Class body

  12. Class block

  13. File contents

按 Alt+Down(Ctrl+Shift+W) 缩小选择。

34. 格式化代码

PhpStorm 可以帮助确保你的代码符合你遵循的任何编码标准。按 Cmd+Alt+L (Ctrl+Alt+L on Windows/Linux) 重新格式化当前选择的源代码或整个文件(如果未选择任何内容)。

请务必在首选项中配置首选代码样式,上面的示例设置为使用 PSR2 标准。你可以轻松的配置 PhpStorm 使用 PSR1/2 标准, 在首选项中打开 Editor | Code Style | PHP 并点击   Set from… | Predefined Style | PSR1/PSR2.

在上面的示例中看到更改的内容并不容易,因此我将其包含在此处。起始代码没有遵循 PSR2 标准,看起来像这样:

1
2
3
4
5
6
7
8
9
10
class Example {
public function __construct() {
$array = array(1,2,3);
if (count($array) > 3)
{
foreach ($array as $item)
echo $item;
}
}
}

然后重新格式化以符合 PSR2 标准,看起来像这样:

1
2
3
4
5
6
7
8
9
10
11
12
class Example
{
public function __construct()
{
$array = [1,2,3];
if (count($array) > 3) {
foreach ($array as $item) {
echo $item;
}
}
}
}

35. 跳转到错误位置

按 F2 键将光标跳转到文件中的下一个错误。

按 Shift+F2 跳转到上一个错误。

36. 变量提取

PhpStorm 的 extract to variable 功能是一个非常有用的工具,可以提供任何重构任务帮助。它允许您抽象变量后面的表达式,并且足够聪明以识别代码中表达式的其他用法,以便能够用变量替换每个其他用法。

按 Ctrl+T (Windows/Linux: Ctrl+Shift+Alt+T) 调用  Refactor This 弹出窗口,或选择 Refactor | Refactor This ,然后 从列表中选择 4. Variable…

或者,按 Cmd+Alt+V/Ctrl+Alt+V 直接调用光标下符号的提取到变量操作。

37. 行内变量

与 [#36 提取变量] 相反, inline variable  重构允许您将变量的用法替换为变量的基础值/表达式。

按 Ctrl+T (Windows/Linux: Ctrl+Shift+Alt+T) 调用   Refactor This   弹出窗口,或在菜单中选择 Refactor | Refactor This,然后 从列表中选择   0. Inline…

或者,按  Cmd+Alt+N/Ctrl+Alt+N 直接调用光标下符号的内联变量操作。

38. 正则测试

使用 PHPStorm,你可以测试正则表达式而无需离开 IDE。

首先,将光标放在包含正则表达式的字符串上,然后按 Alt+Enter 调用   intention actions    并选择 Inject language or reference,然后 从列表中选择 RegExp (Regular Expression) 。这允许 PHPStorm 将字符串标识为正则表达式。

然后,使用 Alt+Enter 再次调用 intention actions ,您应该看到不同的选项列表, 从列表中选择 Check RegExp ,然后会出现一个弹出窗口。

在此弹出窗口中,您可以编辑正则表达式并提供示例字符串以与其进行比较。

39. 使用结构化语法包裹

PhpStorm 可以帮助完成使用语法结构(如 if 语句和  foreach 循环)包裹代码的常见操作  。

按 Cmd/Ctrl+Alt+T 调用 Surround With   弹出窗口,或导航到 Code | Surround With…,然后从列表中选择所需的语言结构。

当前行将在所选构造中被包围,在调用 Surround With 弹出窗口之前围绕多行进行选择。

40. 拆开或者移除语法块

和 [#39  使用结构化语法包裹]相反  ,PhpStorm 可以帮助删除围绕一段代码的语言结构。

将光标放在要分解或删除的构造中的表达式上,然后按 Cmd/Ctrl+Shift+Delete 或导航到 Code | Unwrap/Remove… 将出现一个弹出窗口,其中列出了基于当前上下文的所有可用操作。

将鼠标悬停在其中一个列表项上将允许您预览将应用的更改,指示将删除代码的哪些部分以及将保留哪些部分。选择列表项以将重构应用于您的代码。

Unwrap/Remove 重构器也可用于 HTML 标签!

41. 在 php.net 查看文档

要查看内置 PHP 标识符的在线文档,请将光标放在符号上,然后按 Shift+F1 。这将在 php.net 上打开标识符号的文档

或者单独按 F1(Windows 上的 Ctrl+Q)以查看 PhpStorm 内部的文档。

42. 在注释中的代码自动补全

除了能够在编写代码时提供代码完成建议,PhpStorm 还可以在注释内提供建议。按 Ctrl+Space 可调用代码完成操作。

由于评论没有任何上下文,因此与评论之外的建议相比,完成建议将受到限制; 建议列表主要使用当前文件中的关键字填充。

43. 把一个字串拆分为 2 行

要将字符串拆分为多行,请将光标放在字符串内的任意位置,然后按 Ctrl/Cmd+Enter。

PhpStorm 会将字符串拆分为两个单独的字符串,并添加代码以将它们连接在一起。

44. 合并行

按 Ctrl+Shift+J 将光标下方的行连接到当前行的末尾。

PhpStorm 还将格式化代码以遵循配置的编码标准。

45. If / Switch 语法切换

PhpStorm 使您能够将 if 块转换为 switch 语句,反之亦然。

只需将光标放在 if 块上,然后按 Alt+Enter 调用   intention actions 菜单,然后从列表中选择   Replace ‘if’ with ‘switch’ 。您甚至可以将操作应用于 switch 语句以将其转换为 if 块。

请注意,只有当if 块中的每个语句都使用    equality(相等)   条件时,才会使用 intention actions

46. 复制配置项路径

右键设置菜单, 可以复制设置路径, 写文档巨好用

47. 折叠区块

打开 IDE, 选择需要分组的代码, 按下 Cmd + Opt + T, 选择 region ... end region comments

然后代码则被

1
2
3
4
5
//endregion

.. your code here

//endregion

这部分代码在导航中可以被导航到

[原] JetBrains 系列 IDE 常用插件

通用插件

1. 代码地图 CodeGlance

下载地址:

Intelij 插件,显示一个缩小概述或代码地图,类似于 Sublime 进入编辑器导航, 代码地图允许快速滚动,让你直接跳转到代码部分。

  • 使用自定义的颜色进行语法高亮显示,可以同时处理明暗主题
  • 使用 intelij’s tokenizer 进行显色
  • 可滚动!
  • 嵌入到编辑器窗口
  • 完全替换支持新 Intellij 构建的代码大纲

2. 大小写切换(CamelCase)

Switch easily between CamelCase, camelCase, snake_case and SNAKE_CASE. 使用 SHIFT + ALT + U 来进行快捷方式切换

3. String Manipulation - 字串处理

提供字符的便捷操作

String Manipulation

提供强大的文本转换操作:

切换样式(camelCase, hyphen-lowercase, HYPHEN-UPPERCASE, snake_case, SCREAMING_SNAKE_CASE, dot.case, words lowercase, Words Capitalized, PascalCase)
转换为 SCREAMING_SNAKE_CASE (或转换为 camelCase)
转换为 snake_case (或转换为 camelCase)
转换为 dot.case (或转换为 camelCase)
转换为 hyphen-case (或转换为 camelCase)
转换为 hyphen-case (或转换为 snake_case)
转换为 camelCase (或转换为 Words)
转换为 camelCase (或转换为 lowercase words)
转换为 PascalCase (或转换为 camelCase)
选定文本大写
样式反转
Un/Escape:

….

更多文档查看官方: 这里

4. .ignore 忽略文件

.ignore, 可以在编辑器忽略文件显示的组件

.ignore 示例文件

5. CamelCase 大小写转换

CamelCase

提供大小写转换

快捷键 : Shift+Alt+U

For Php

1. Php Inspections - PHP 静态代码分析工具

php inspection

开启之后需要需要在写 PHP 的时候注意项目, 相关的文档点击

地址:

这个项目是一个 OSS 静态代码分析工具, 在 PhpStorm(2016.2+)和 Idea Ultimate 上可用。
它包含:

  • 架构相关问题
  • 弱类型控制和可能的代码构造优化
  • 性能问题
  • 非最佳、重复和可疑的“如果”条件
  • 验证魔术方法的使用
  • 正则表达式
  • 异常处理工作流的验证
  • 兼容性问题
  • 各种耗时的 bug
  • PhpUnit API 的使用
  • 安全问题

Alt + Shift + I   来进行验证

2. Laravel - Laravel 开发工具

Laravel

启用 插件

找到 Preferences | Languages & Frameworks | PHP | Laravel, 然后开启 Enable Plugin for this project

配置 view 的映射

例如 system 模块的映射地址应该是 modules/system/resources/views

这样在点击的时候才能够跳转到这个页面

启用控制器的命名空间检测

Router Namespace 中添加相关的命名空间, 多个使用 , 分隔.

  • 控制器补全和跳转
  • 路由资源引用
  • 检测路由
  • view 跳转和 view 跳转到控制器
  • 配置显示
  • 翻译显示

参考 & 相关阅读