说明
- IDEA使用久了比较占磁盘,可把
C:\Users\smalle\.IntelliJIdea2018.1\system\index目录下的索引文件全部删掉释放磁盘空间;如果做了C盘搬家,也可删除目标存储目录,如D:\FileHistory\smalle\AEZO-E480\Data\C\Users\smalle\.IntelliJIdea2018.1\system\index - 配置同步:在File菜单中设置setting的repository为git@xxx仓库,设置.ssh认证即可同步仓库
- 插件同步:复制idea配置目录(USER/AppData/Roaming/jetbrains)下的config/plugins目录到新的环境下
- Mac相关配置文件,完全卸载需要删除
~/Library/Application Support/Jetbrains~/Library/Caches/Jetbrains~/Library/Logs/Jetbrains~/Library/Preferences/Jetbrains
jetbrains相关编辑器破解
- 2024.3.1.1 PyCharm破解
1 | ## 参考: https://www.iotword.com/26770.html |
1 | # 参考 https://www.cnblogs.com/yanglang/p/16818245.html |
- 2021.2.2及以下
- 下载插件ide-eval-resetter后本地安装: https://plugins.zhile.io/files/ide-eval-resetter-2.1.6.zip
- 通过无限重置30天试用达到永久使用(如果过期没来得及重置,可以先进入然后马上在Tools菜单中进行重置)
2018.1
- 在 hosts 文件里面添加如下配置
0.0.0.0 account.jetbrains.com、0.0.0.0 www.jetbrains.com` - 基于激活码破解:http://idea.lanyus.com/getkey
基于破解补丁进行破解
- 下载破解补丁:http://idea.lanyus.com/jar/JetbrainsIdesCrack-4.2-release-sha1-3323d5d0b82e716609808090d3dc7cb3198b8c4b.jar
- 在
bin/idea64.exe.vmoptions和bin/idea64.exe.vmoptions文件中加入-javaagent:D:\software\JetbrainsIdesCrack-4.2-release-sha1-3323d5d0b82e716609808090d3dc7cb3198b8c4b.jar,两个都需要加入 - 启动idea输入以下注册码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24ThisCrackLicenseId-{
"licenseId":"ThisCrackLicenseId",
"licenseeName":"Rover12421",
"assigneeName":"",
"assigneeEmail":"rover12421@163.com",
"licenseRestriction":"For Rover12421 Crack, Only Test! Please support genuine!!!",
"checkConcurrentUse":false,
"products":[
{"code":"II","paidUpTo":"2099-12-31"},
{"code":"DM","paidUpTo":"2099-12-31"},
{"code":"AC","paidUpTo":"2099-12-31"},
{"code":"RS0","paidUpTo":"2099-12-31"},
{"code":"WS","paidUpTo":"2099-12-31"},
{"code":"DPN","paidUpTo":"2099-12-31"},
{"code":"RC","paidUpTo":"2099-12-31"},
{"code":"PS","paidUpTo":"2099-12-31"},
{"code":"DC","paidUpTo":"2099-12-31"},
{"code":"RM","paidUpTo":"2099-12-31"},
{"code":"CL","paidUpTo":"2099-12-31"},
{"code":"PC","paidUpTo":"2099-12-31"}
],
"hash":"2911276/0",
"gracePeriodDays":7,
"autoProlongated":false}
- 在 hosts 文件里面添加如下配置
常用设置
- 新建包文件夹,一定要一层一层的建,或者创建
cn/aezo的文件夹,不能创建一个cn.aezo(不会自动生成两个文件夹) - for快捷键使用:
list.for、arr.for. 可以在File-Setting-Editor-General-Postfix Completion中查看
项目配置
- 进入到Project Structure:
File - Project Structure^1 - 修改项目名称(IDEA中显示的名称): Project Settings - Project - Project name
- java-web(springmvc)配置步骤
Project项目级别- 主要是project compiler output的位置(src的编译位置):如
D:/myproject/classes(使用默认即可),为对应WEB-INF下的classes目录
- 主要是project compiler output的位置(src的编译位置):如
Modules模块级别,项目可能包含多个模块,不同的模块可设置对应的编译输入路径和依赖。一般项目就一个模块Sources将src目录标记成Sources目录 (如果是maven项目则标记java、test目录,即包名的上级目录)Paths使用modules compiler output path,设置路径为D:/myproject/mymodule/target/classes。主要解决idea自身编译(使用默认的即可)Dependencies加入jdk、tomcat、其他依赖jar(如/WEB-INF/lib中的jar,如果是maven依赖则不需要加入)。主要解决idea自身编译(语法检查)
Libraries如将/WEB-INF/lib中的所有jar定义一个目录,直接加入到Dependencies中Facets- 点击
+-web Web Module Deployment Descriptor为/myproject/WebRoot/WEB-INF/web.xmlWeb Resource为/myproject/WebRoot- 勾选
Source Roots
- 点击
Artifacts根据上面的配置,最终打包成一个war包部署到tomcat中。(Artifacts是maven中的一个概念,表示项目modules如何打包,比如jar,war,war exploded,ear等打包形式,一个项目或者说module有了artifacts就可以部署到web应用服务器上了,注意artifact的前提是已经配置好module)- 点击
+-Web Application: Exploded-From ModulesOutput directory为/testStruts2/WebRoot- WEB-INFO/lib下的jar都要显示在此目录
- 点击
+-Web Application: Archive-For "XXX: Exploded"(主要用于打包)Output directory为D:/myproject/war
web application exploded是以文件夹形式(War Exploded)发布项目,选择这个,发布项目时就会自动生成文件夹在指定的output directoryweb application archive是war包形式,每次都会重新打包全部的,将项目打成一个war包在指定位置- 如果是maven项目:选中Available Elements中的依赖,将需要的依赖加入到WEB-INF/lib中(右键,put into WEB-INF/lib. tomcat相关依赖无需加入,因为最终Artifacts会部署到tomcat容器)。否则像struts2会报错
java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
- 点击
Run configuration启动配置。如使用tomcat启动+-tomcat server-localApplication Server: 本地tomcat路径VM:添加-Dfile.encoding=UTF-8防止出现乱码JRE填写jdk路径Deployment中将刚刚的war配置进入,可修改某个war包的根路径- 在
Before launch中加入Build这个war包
- 打包:Build - Build Artifacts - xxx:war - build (在上述Output directory中可看到war包等输出文件)
普通SDK打包配置

- 创建一个JAR类型的Artifacts
- 将右侧可用的文件加入(Put into Output Root)到左侧的Output Layout里面(最终打包文件的结构),如过不需要将依赖的第三方SDK打包进去,则不要放到左侧
- 选择打包的xxx.jar输出文件,创建(自动生成一个文件)或选择一个MANIFEST文件
- 执行打包: Build - Build Artifacts - xxx:jar - build
- idea报错:Error:java不支持发行版本5的解决方法:https://www.cnblogs.com/wqy0314/p/11726107.html
- File-Setting-Java Compiler
其他
- 打开新项目默认的项目名称为目录名称,可修改项目名称(关闭项目后生效),只会修改.iml文件
- 配置同步到远程
- File - Settings Repository - 输入远程地址,如保存到github(输入ssh验证的项目地址) - Overwrite Remote同步到远程
- 自动收缩空包文件夹
- Project浏览Tab - 设置 - Hide Empty Middle Packages
- 管理书签
- Cmd + F3即可调整书签排序(自动排序只能基于助记符+文件+行排序,或者手动排序)
插件使用
实用
jrebeljava热部署(会自动热部署新代码。如果不使用jrebel,springboot-devtools可修改代码后使用Ctrl+Shif+F9进行热部署)- jrebel破解参考:http://www.cicoding.cn/other/jrebel-activation/
- 访问
http://jrebel.cicoding.cn/guid生成GUID - 监听配置格式
http://jrebel.cicoding.cn/MY_GUID,邮箱随便填写
- 访问
- 无法热部署场景
- 修改了Entity,涉及到mybatis的操作无法生效(mybatis缓存了数据类型?)
- 修改了mybatis mapper和对应文件一般无法生效
- 修改了方法声明
- jrebel破解参考:http://www.cicoding.cn/other/jrebel-activation/
CamelCase使用Alt + Shift + U将字符串在下划线/中划线/大小驼峰中切换,可重复按快捷键进行切换String Manipulation字符串转换(包括下划线/中划线/驼峰等)。鼠标右键会有对应的选项,缺点:无快捷键
CodeGlance Pro显示代码地图Alibaba Java Coding Guidelines阿里巴巴代码规范Translation翻译插件(https://github.com/YiiGuxing/TranslationPlugin)Maven Helper可显示冲突的maven依赖- 此插件依赖
Maven Intergration,在安装后也要启用 - 点击pom.xml文件,右下角会出现
Dependency Analyzer Dependency Analyzer-Conflicts中显示的即为冲突的依赖- 点击其中任何一个依赖,会在右侧显示重复引用的来源(基于版本降序)
- 点击右侧某个引用来源,右键可查看引用源码,也可以将低版本从pom中exclude掉来解决冲突
- 此插件依赖
MybatisX- 支持生成mybatis-plus代码
- 选择表 - Mybatis-X Generator
- module path=maven多模块的时候选择一个模块目录
- base package=cn.aezo.share.rtadmin.app
- annotation=Mybatis-Plus3, options=Comment,Lombox,Model, template=mybatis-plus3
- 修改entity代码,增加id配置:
@TableId(value = "id", type = IdType.ASSIGN_ID)
- 支持生成mybatis-plus代码
MyBatisCodeHelperPro (Marketplace Edition)实体/表双向生成(支持实体生成建表语句)- 破解: https://cnblogs.com/equals/p/15391453.html
- 使用说明
- 支持实体生成建表语句
- (只支持mybatis)支持基于表生成实体/Mapper/服务等
- 类似插件:
MybatisX、Free MyBatis plugin可自动识别mapper实现(mybatis标识),集成了MyBatis Generator GUI
- 类似插件:
- 支持生成Mybatis执行日志(自动拼接参数)
- 类似插件:
MyBatis Log Plugin将mybatis日志中的?转换为真实值。在Tools菜单中可打开对应面板。破解版地址: https://github.com/Link-Kou/intellij-mybaitslog
- 类似插件:
- 支持预执行SQL(基于Mapper XML执行,弹框输入参数执行)
Grep Console日志过滤- 高亮: 如表达式
Expression=.*Demo.*则表示显示有Demo字样的那些行 - 日志窗口 - 右键 - Grep: 基于当前日志进行过滤(只显示符合条件的日志,如输入Demo则只匹配有Demo字样的行)
- 高亮: 如表达式
Java Bytecode Decompiler查看class反编译代码
部分场景
PlantUML integration基于PlantUML语法画UML图SequenceDiagram根据源码生成时序图jclasslib Bytecode viewer查看java class字节代码。安装后在View - Show Bytecode With jclasslib(打开一个类可进行查看)RestfulToolkit使用Ctrl + Alt + N基于路径搜索controller对应的位置leetcode算法刷题,参考:https://github.com/shuzijun/leetcode-editor/blob/master/doc/CustomCode_ZH.mdAdapter for Eclipse Code Formatter代码格式化- Setting - Other Settings - Adapter for Eclipse Code Formatter - 勾选Use Eclipse’s Code Formatter - 设置Eclipse workspace/project folder or config file。如:
https://github.com/sofastack/sofa-boot/blob/master/tools/Formatter.xml - 执行代码格式化快捷键 Ctrl+Alt+Shift+L
- Setting - Other Settings - Adapter for Eclipse Code Formatter - 勾选Use Eclipse’s Code Formatter - 设置Eclipse workspace/project folder or config file。如:
CheckStyle-IDEA检查代码格式- Setting - Tools - CheckStyle - Configuration File - 新增一个本地的样式校验规则配置
- 参考:https://blog.csdn.net/u011943534/article/details/83037496
PMDPlugin主要用于检查java源文件中的潜在问题,如未使用的变量等- Setting - Other Settings - PMD - RuleSets - 新增PMD校验规则配置。如:https://github.com/sofastack/sofa-boot/blob/master/tools/pmd-ruleset.xml
SpotBugs类似findbugs,主要检查.class文件中的潜在问题,如空指针等
其他
JMH pluginJava基准测插件JMeter pluginJindent-Source Code Formatter(收费,无法破解) 自定义javadoc注释Key Promoter X快捷键提示和统计快捷使用频率Rainbow Brackets彩虹圆/尖括号颜色,会把代码中所有括号变色,有点花里胡哨HighlightBracketPair(Idea v2021 不支持) 彩虹大括号,选中高亮,有点花里胡哨CodotaCodota AI Autocomplete 代码示例,基于类或方法查找网上流行的使用方式。类似的如Aixcode- 推荐结合
tabnine进行代码补全
- 推荐结合
Lombox(新版IDEA已内置) 简化代码工具(maven项目中需要加入对应的依赖) https://projectlombok.org/。写法参考java-tools.md#Lombox
未使用
FindBugs-IDEA检测代码中可能的bug及不规范的位置,检测的模式相比P3GC更多GsonFormat一键根据json文本生成java类MyBatisCodeHelperPromybatis代码自动生成插件,大部分单表操作的代码可自动生成
快捷键
- 类似参考vscode.md#快捷键
- 待记忆
F8断点调试下一步Double Shift全局文件名查找Alt + Shift + 上下上下移动当前行Ctrl + Shift + Space智能补全(可多次按键扩大搜索范围)Ctrl + P查看方法参数Ctrl + Q查看方法说明Ctrl + Shift + N搜索文件(可选中文件路径后再按键)Alt + Insert自动生成(Getter/Setter等)Ctrl + Alt + T对选中代码生成try…catch/if等包裹语句Alt + F7查询方法的使用关系Ctrl + ALT + H查询方法的调用关系(可以选择引用和被引用)Ctrl + B跳转到声明Ctrl + E最近访问文件Ctrl + W单词语句感知选择,多次点击会扩大选中范围;Ctrl + Shift + W相反Ctrl + Shift + Entry完成整句Ctrl + Shift + F7高亮所用之处:把光标放在某元素上,类似与快速查找此文件此元素出现处Ctrl + H类似Navigate - Call Hierarchy 命令查看一个Java类的继承管理Ctrl + D复制行Ctrl + Y删除行Ctrl shift +展开所有方法Ctrl shift -收缩所有方法
- 常用快捷键
两次Shift全局查找Ctrl + N跳转到类Ctrl + Shift + F9热部署Ctrl + Shift + F/R全局查找/替换(jar包只有下载了源码才可检索)。搜狗输入法快捷键简繁体切换可能会占用Ctrl+Shift+FCtrl + Shift + Backspace回到上次编辑位置Ctrl + Alt + 左右回退(退到上次浏览位置)/前进Alt + Enter提示- 复制是去除字符串连接符:
Copy string concatenation text to the clipboard(注意: 选中字符串后鼠标不要点击到字符串中间)
- 复制是去除字符串连接符:
- Mac
Cmd + Shift + U大小写转换Alt + Shift + U驼峰下划线转换(基于插件)
- 批量选择
Alt + Shift + 左键跨行需要每行单点,可以让光标在多个位置出现Alt + 鼠标拖选可选择单个矩形- 先
Alt + 鼠标拖选选择一个矩形,再(增加)按住Cntr + Shift选择多个矩形
- 先
Alt + Shift + Insert然后按住鼠标左键拖动选中多行,此时可选择空白区域。开启鼠标插入选择模式(鼠标右键 - 选中columu select module进行开启)- VsCode相关(IDEA快捷键)
Alt + 左键跨行需要每行单点Alt + Shift + 鼠标拖动可选择矩形(或移动上下键),多个矩形暂未验证Ctrl + Alt + Up/Down选中/取消当前行的多行编辑Ctrl + Shift + L选择所有找到的查找匹配项,此时所有的匹配项都有光标- 选中多行后,可结合
Ctrl + 左右键进行跨单词移动光标 - 选中多行复制后,并再新的地方选择多行,然后粘贴即可粘贴多行
- 特殊场景
- SQL控制台界面
Ctrl + Enter执行SQL (Navicate为Cntr + R)Ctrl + Alt + E查看最近执行SQLCtrl + F12查看列定义;选择某一列再点击时,会跳到指定列定义
- SQL控制台界面
- 快捷键图片

javadoc配置与生成
配置
- 方式一:使用
Jindent插件(收费,无法破解) - 方式二 ^4
- 类注释: Editor - File and Code Templates
- 方法注释:Editor - Live Templates。无法解决 @return 和 @throws
生成
- https://blog.csdn.net/vbirdbest/article/details/80296136
- Tools - Generate Javadoc
- Locale:
zh_CN - other command line arguments:
-encoding UTF-8 -charset UTF-8 - 如果有自定义的javadoc标签,则需要在other command line arguments框中增加输入定义
-tag XX:a:YY,例如:-tag date:a:日期 -tag description:a:"功能描述"
- Locale:
javadoc标签
| 标签 | 描述 | 示例 |
|---|---|---|
| @author | 标识一个类的作者 | @author description |
| @deprecated | 指名一个过期的类或成员 | @deprecated description |
| {@docRoot} | 指明当前文档根目录的路径 | Directory Path |
| @exception | 标志一个类抛出的异常 | @exception exception-name explanation |
| {@inheritDoc} | 从直接父类继承的注释 | Inherits a comment from the immediate surperclass. |
| {@link} | 插入一个到另一个主题的链接 | {@link name text} |
| {@linkplain} | 插入一个到另一个主题的链接,但是该链接显示纯文本字体 | Inserts an in-line link to another topic. |
| @param | 说明一个方法的参数 | @param parameter-name explanation |
| @return | 说明返回值类型 | @return explanation |
| @see | 指定一个到另一个主题的链接 | @see anchor |
| @serial | 说明一个序列化属性 | @serial description |
| @serialData | 说明通过writeObject( ) 和 writeExternal( )方法写的数据 | @serialData description |
| @serialField | 说明一个ObjectStreamField组件 | @serialField name type description |
| @since | 标记当引入一个特定的变化时 | @since release |
| @throws | 和 @exception标签一样. | The @throws tag has the same meaning as the @exception tag. |
| {@value} | 显示常量的值,该常量必须是static属性。 | Displays the value of a constant, which must be a static field. |
| @version | 指定类的版本 | @version info |
<pre></pre> | 可按格式显示文本,如显示代码块 |
常用技巧
正则查找和替换
- 查找如
to_char\(((?:(?!FROM).)*?)\,(.*?(?:yy\-|yy\/|mm\-|mm\/|hh24).*?)\)查询所有同to_char格式化日期的SQL,但是不包含to_char(FROM- 替换如
to_char(FROM_TZ(CAST($1 AS TIMESTAMP), 'Asia/Shanghai') AT TIME ZONE '"+ Util.getTimeZone() +"', $2)
- 替换如
- VsCode正则
@comp\/(.*?)(?<!\.vue)'$替换为@comp/$1.vue'将非.vue结尾的加上.vue (伪案例: 这样替换可能会导致@comp/Demo/index.vue写成@/comp/Demo时被替换错误)
Debug调试技巧
- 回退断点:删除掉某个Frame即可,Frame显示的是执行过的和当前执行的帧,如果删除了,则会从上一帧重新调用 ^3
- 中断Debug/强制返回:右键帧 - Force Return - 填写返回值
- 远程Debug,参考JVM参数使用
- 如果一个对象集成了Map接口,则在IDEA中debugger的时候只会显示Map中的属性,如果需要类的其他属性,可右键对象 - View as - Object(此处默认选中的是Map)
查看并搜索/调试/编辑jar包源码
- 点击maven视图 - Dependencies - 右键需要下载源码的依赖 - 下载源码 - 之后点击该依赖的类会自动显示源码文件(无源码则显示class反编译文件)。此方法的源码无法修改
- 下载源码并支持全局搜索。如打印日志,在class文件中是无法全局搜索的,只有下载源码才能进行全局搜索
下载源码并调试:class文件是可以通过idea反编译进行调试,但是部分场景很麻烦,如
1
2
3
4
5
6
7
8// 源码如下
this.foo();
return this.bar();
// class文件反编译如下。假设this.bar()执行报错,则在debug class文件时,行显示直接跳过了`var1 = this.bar();`便报错了
this.foo();
var1 = this.bar();
return var1;下载源码并支持修改
- 先下载对应源码到某目录,如dir
- 点击项目管理视图 - Libraries - 点击相关依赖 - 选择Sources - Add添加源码文件 - 选择刚刚目录下的源码(如果源码为maven结构,则选择改源码的src目录)
- 点击该依赖类 - 编辑 - idea提示此文件不为本项目文件,是否需要修改 - 选择是即可
开启Run DashBoard配置
- 当项目存在多个可执行模块时,Run DashBoard配置会自动跳出,如果不跳出可以手动配置,在项目的
.idea/workspace.xml中找到<component name="RunDashboard">节点,在此节点中加入下列配置
1 | <option name="configurationTypes"> |
使用.http文件的快捷请求脚本
- https://www.cnblogs.com/crazymakercircle/p/14317222.html
- 支持环境变量,如创建
http-client.env.json
Git
- 设置git的Local Changes窗口显示
- File –> Settings –> Version Control –> commit -> 取消勾选 Use non-modal commit interface -> apply
- 新版本(2025)设置: File –> Settings –> Advanced Settings -> 搜索commit - 勾选 Use modal commit interface for Git
- 在一个项目中管理多个git
- setting - Version Control - 编辑Directory
- 暂存功能(Shelve搁置)。类似git stash
- Local Changes - 右键 - Shelve Changes - 命名一下此搁置 ==> 此变更会被暂存(暂存不会产生commit记录,主分支会被还原成未修改的状态)
- Shelf - 右键 - UnShelve ==> 还原此暂存到主分支
Maven
- 移除maven模块
- 在项目目录中选中模块 - 右键 - Remove Module;然后再Maven依赖窗口中 - 右键 - Unlink Maven Projects
- maven模块是否按分组展示
- maven窗口 - setting - Group Modules 分组展示(默认为展开模式进行展示)
- 项目之前正常,突然有一天打开通过maven可以正常编译,但是项目中的类在idea中引入失败(报红,像找不到这个类一样)
JDK及Maven版本
- jdk版本
- 点击IDEA启动按钮:读取的是项目的project sdk
- 点击maven窗口的compile等命令:优先读取此命令的reconfiguration配置;其次读取项目project sdk
- maven版本
- 点击IDEA启动按钮:读取的是setting - build - maven中的配置
- 点击maven窗口的compile等命令:优先读取此命令的reconfiguration - general - 是否勾选use project settings;其次读取idea的maven配置
- Language level版本
- 主要是IDEA语法校验的版本
- 编译的字节码版本
- idea为setting - build - compiler - java compiler - target bytecode version
- maven为java.version/maven.compiler.source/maven.compiler.target等参数
- 编译
- IDEA启动前编译
- 会先判断此类是否已经完成编译(存在class文件)
- 如果已完成编译则跳过此类的编译(如可能提前通过maven命令完成了编译或打包产生了对应的class文件)
- 未编译则走IDEA编译(Build),此时会使用项目的project sdk版本执行编译,但是将java源码编译成目标版本的class文件是按照setting - build - compiler - java compiler - target bytecode version来的(project bytecode version只是当前项目的缺省值),java的启动版本和class目标版本可以不一致(一般设置成一致)
- Maven编译(Maven打包前编译)
- 执行mvn命令的jdk版本参考上文说明
- 对应bytecode版本读取: java.version/maven.compiler.source/maven.compiler.target等参数
- maven项目会读取build节点配置(如build.resources配置)
- IDEA启动前编译
IDEA开发PHP程序
安装php插件 ^2
- setting -> plugins -> browse repositories -> 输入php
- 没看到的话,往下翻几页看看,找到PHP(LANGUAGES),安装次数较多的那个
xdebug使用
- 找到php.ini,搜索xdebug
- 下载xdebug的dll文件,并在php.ini中设置。wamp已经含有这个功能
替换下面代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22[xdebug]
zend_extension=D:\software\wamp\php\ext\php_xdebug.dll
xdebug.remote_enable=on
xdebug.remote_host=localhost
xdebug.remote_port=9000
;下面两项和Intellij idea里的对应
xdebug.idekey=idekey
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
;下面这句很关键,不设置intellij idea无法调试
xdebug.remote_autostart=1
;调试配置,详细的可以参考phpinfo页面进行配置
xdebug.auto_trace=on
xdebug.collect_params=on
xdebug.collect_return=on
xdebug.trace_output_dir="../xdebug"
xdebug.profiler_enable=on
xdebug.profiler_enable_trigger = on
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir="../xdebug"
xdebug.collect_vars=on
xdebug.cli_color=on在idea中设置php的安装路径
添加php interpreters指向php的主目录,点击这边的show info按钮,在Loaded extensions里应该可以看到xDebug

启动xdebug调试
- 点击intellij idea工具栏里的 start listen php debug connections.开启调试模式。
点击工具栏里向下的小三角->edit configuration->add new configuartion->php web Application Server里选aezo.cn

打断点,运行程序即可进行调试
jetbrains相关IDE
PhpStorm
- 使用前需配置php可执行程序路径(Languages - PHP). 如果使用xampp,则可使用xampp中配置的xdebug
- 进行debug时,创建一个
PHP Web Page启动配置,此时host和port需要填Apache服务器的host和port(PhpStorm中的启动配置并不会启动服务器,因此需要另外启动Apache等服务器) - PHPStorm使用Xdebug进行调试时,没打断点也一直进入到代码第一行:去掉勾选Run - Break at first line in PHP Scripts
参考文章
