PhpStorm 文件模板仅支持 ${PROJECT_NAME} 变量,取自项目文件夹名或 .idea/.name 文件,不支持 ${PROJECT_DESCRIPTION};需手动维护或脚本注入描述;${PROJECT_NAME} 仅在 Files 类型模板中有效,Includes 中无效;正确用法是将其与 $NAMESPACE$ 结合用于类注释,且需重启 IDE 生效。

文件模板里怎么插入项目名称和描述
PhpStorm 文件模板不支持直接写“项目描述”字段,它没有内置的 ${PROJECT_DESCRIPTION} 变量。你真正能用的只有 ${PROJECT_NAME} ——这个变量会自动展开为当前打开项目的文件夹名(或 .idea/.name 文件里指定的名称),但不会读取 README、composer.json 或任何人工填写的“描述”。
如果硬要加“描述”,只能靠两种方式:手动维护、或外部脚本注入。前者简单但易过期,后者稳定但需额外配置。
-
${PROJECT_NAME}是唯一可靠可用的项目级变量,它在 Files 类型模板中始终有效(Includes类型里不可用) - 想显示 composer.json 里的 description 字段?得自己写 shell/Python 脚本读取并生成临时模板,再让 PhpStorm 加载——这已超出 IDE 原生能力范围
- 常见错误是把
${DESCRIPTION}或${PROJECT_DESC}当成合法变量写进模板,结果生成出来就是字面字符串,IDE 完全不解析
PHP Class 模板里加项目信息的实操建议
如果你希望新建类时自动带项目名(比如作为命名空间前缀或注释说明),最稳妥的做法是在 PHP Class 模板开头加一行注释:
/**
* Project: ${PROJECT_NAME}
* @package $NAMESPACE$
*/
注意三点:
- 必须把这段放在
#parse("PHP File Header.php")之后,否则$NAMESPACE$可能为空 -
${PROJECT_NAME}和$NAMESPACE$混用没问题,前者是 Files 模板变量,后者是 PHP 特定变量,两者作用域不同但可共存 - 如果项目根目录下有 .idea/.name 文件,且内容被手动改过,
${PROJECT_NAME}就会显示那个值;否则默认取文件夹名
为什么改了模板却看不到 ${PROJECT_NAME} 生效
现象是生成的文件里写着 Project: ${PROJECT_NAME},而不是真实项目名——这不是变量写错了,而是模板类型选错了。
- 只在 Files 标签页下的模板(如
PHP Class、PHP Interface)才支持${PROJECT_NAME} - 在 Includes 标签页下编辑的模板(如
PHP File Header.php)不识别${PROJECT_NAME},只认$NAMESPACE$、$NAME$这类 PHP 专用变量 - 改完模板后必须重启 PhpStorm,缓存不刷新会导致变量始终不展开
替代方案:用目录标记 + 命名空间间接体现项目意图
与其强行塞“项目描述”,不如利用 PhpStorm 对 PSR-4 的理解来传递上下文。比如你的项目实际叫 “user-service-api”,但文件模板里不写死文字,而是:
- 把
src/目录标记为 Sources Root(右键 → Mark Directory as → Sources Root) - 确保
composer.json里有"autoload": {"psr-4": {"App\": "src/"}} - 这样新建类时
$NAMESPACE$自动变成AppSomething,比手写的 “Project: user-service-api” 更准确、更可持续
真正容易被忽略的是:${PROJECT_NAME} 不代表业务项目名,它只是 IDE 内部标识符;而 $NAMESPACE$ 才是代码运行时真正起作用的部分。别为了表面美观牺牲可维护性。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










