PhpStorm如何在保存PHP文件时自动更新PhpDoc的@updated标签?
实现保存PHP文件时自动更新@updated注释标签
以下是几个经过验证的可行方案,适配不同开发场景:
方案1:PHPStorm 搭配 File Watcher + 自定义脚本
- 先编写一个简单的Python脚本(命名为
update_updated_tag.py),用于扫描并替换@updated标签的内容:import re import sys from datetime import datetime file_path = sys.argv[1] # 匹配现有注释的日期格式,可根据需求调整 current_time = datetime.now().strftime("%m/%d/%Y %I:%M %p") with open(file_path, 'r+', encoding='utf-8') as f: content = f.read() # 正则匹配@updated后的日期时间段并替换 updated_content = re.sub(r'@updated \d{1,2}/\d{1,2}/\d{4} \d{1,2}:\d{2} (AM|PM)', f'@updated {current_time}', content) f.seek(0) f.write(updated_content) f.truncate() - 在PHPStorm中打开
Settings > Tools > File Watchers,点击添加规则:- 类型选择
Custom - 文件类型指定为
PHP - 程序选择你的Python解释器路径,参数填
$FilePath$ - 勾选
Trigger on save,确保脚本在文件保存时自动执行
配置完成后,每次保存PHP文件,@updated标签就会自动更新为当前时间
- 类型选择
方案2:VS Code 自定义任务 + 脚本
- 将上述Python脚本放在项目根目录下
- 在VS Code中按
Ctrl+Shift+B打开任务面板,选择创建tasks.json文件并选Others,修改配置内容:{ "version": "2.0.0", "tasks": [ { "label": "Update PHP @updated tag", "type": "shell", "command": "python ${workspaceFolder}/update_updated_tag.py ${file}", "problemMatcher": [], "trigger": "onSave", "when": "${fileExtname} == '.php'" } ] } - 保存配置后,每次保存PHP文件时,任务会自动触发脚本更新标签
方案3:Git Pre-Commit 钩子(适合团队协作场景)
如果项目用Git管理,可在.git/hooks目录下创建pre-commit文件(无后缀),内容如下:
#!/bin/bash # 获取暂存区中修改的PHP文件 php_files=$(git diff --cached --name-only --diff-filter=ACM | grep '\.php$') for file in $php_files; do # 生成匹配现有格式的当前时间 current_time=$(date +"%m/%d/%Y %I:%M %p") # 替换@updated标签 sed -i.bak "s/@updated [0-9]\+\/[0-9]\+\/[0-9]\+ [0-9]\+:[0-9]\+ \(AM\|PM\)/@updated $current_time/" "$file" # 将修改后的文件重新加入暂存区 git add "$file" # 删除sed生成的备份文件 rm -f "$file.bak" done exit 0
给文件添加执行权限:chmod +x .git/hooks/pre-commit,这样每次提交代码前,所有修改过的PHP文件的@updated标签都会自动更新
注意:所有脚本中的日期格式需和你现有注释的格式保持一致,若格式不同,调整strftime或date命令的参数即可。
内容的提问来源于stack exchange,提问作者Mike
相关产品推荐
相关产品推荐

