You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PhpStorm如何在保存PHP文件时自动更新PhpDoc的@updated标签?

实现保存PHP文件时自动更新@updated注释标签

以下是几个经过验证的可行方案,适配不同开发场景:

方案1:PHPStorm 搭配 File Watcher + 自定义脚本

  1. 先编写一个简单的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()
    
  2. 在PHPStorm中打开Settings > Tools > File Watchers,点击添加规则:
    • 类型选择Custom
    • 文件类型指定为PHP
    • 程序选择你的Python解释器路径,参数填$FilePath$
    • 勾选Trigger on save,确保脚本在文件保存时自动执行
      配置完成后,每次保存PHP文件,@updated标签就会自动更新为当前时间

方案2:VS Code 自定义任务 + 脚本

  1. 将上述Python脚本放在项目根目录下
  2. 在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'"
            }
        ]
    }
    
  3. 保存配置后,每次保存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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 06:58:24