# 文件模板变量
在这个页面中:
* [基础](#基础)
* [预定义模板变量](#预定义模板变量)
* [自定义模板变量](#自定义模板变量)
## 基础
一个[文件模板](/如何使用/常规指南/文件和代码模板/README.md)可以包含模板变量。当应用一个模板的时候,这些变量被它们的值替换。
文件模板变量是以美元符号开头的后面跟着变量名称。变量名称可能包含在花括号内。例如`$MyVariable`或`${MyVariable}`
## 预定义模板变量
PhpStorm自带一套预定义模板变量。
可用的预定义的模板变量有:
* `${PROJECT_NAME}` - 当前项目的名称
* `${FILE_NAME}` - 将被创建的PHP文件名称
* `${NAME}` - 在创建文件期间在新建文件对话框中指定的文件名称
* `${USER}` - 系统的当前用户登录名称
* `${DATE}` - 当前系统日期
* `${TIME}` - 当前系统时间
* `${YEAR}` - 当前年份
* `${MONTH}` - 当前月份
* `${DAY}` - 当前月的日期
* `${HOUR}` - 当前时刻
* `${MINUTE}` - 当前分钟
* `${PRODUCT_NAME}` - 将被创建文件所在的IDE名称
* `${MONTH_NAME_SHORT}` - 月份名称的前3个字母,例如: Jan, Feb, etc.
* `${MONTH_NAME_FULL}` - 月份全称,例如: January, February, etc.
PhpStorm为[PHP包含模板](/参考/设置参数对话框/编辑器/文件和代码模板.md)提供一组额外变量,也就是,可重用模板可以被包含到其它**PHP file template**。内置**PHP file template**用于生成文件头和[PHP文档注释](/如何使用/语言和框架-具体指南/PHP-具体指南/创建PHP注释文档.md)。下列变量在**PHP include templates**中可用:
* `${NAME}` - PHP文档注释将被生成位置的类、字段或函数(方法)的名称。
* `${NAMESPACE}` - 类或字段的命名空间的全称(除了开头的反斜杠)。
* `${CLASS_NAME}` - PHP文档注释将被生成位置所在类的名称。
* `${STATIC}` - 获取`static`如果要生成注释位置的方法或字段是静态的。否则变成一个空字符串。
* `${TYPE_HINT}` - 要生成注释的函数的返回值提示。如果在函数静态解析的过程中没有发现返回值,它被作为`void`。
* `${PARAM_DOC}` - 参数的一个文档注释。展开为一行`@param type name`。如果要生成文档的函数不包含注释,这个变量被作为空内容。
* `${THROWS_DOC}` - 异常的一个注释文档。被作为一行`@throws type`。如果要生成文档的函数没有抛出异常,这个变量被作为空内容。
* `${DS}` - 一个美元(`{$}`)字符。这个变量被作为文本的美元字符(`{$}`)并被用来作为纯符号而不被作为一个变量的前缀。
* `${CARET}` - 表明在生成文档注释之后插入符的位置。
`${CARET}`变量仅在PHP文档注释被生成和文件创建期间可用。当使用**Code | Generate | PHPDoc block**创建一个PHP文档注释,可以多选要创建文档注释的可用的函数和方法,如类、函数、方法或者字段。作为结果,PhpStorm可以“选择”要应用`${CARET}`的代码块,因此在这种情况下`${CARET}`被忽略。
## 自定义模板变量
除了预定义的模板变量,也可以指定自定义变量。如果需要,你可以定义自定义变量的值到一个模板使用`#set`VTL指令。
例如,如果你想使用你的姓名而不是登录名(通过预定义变量`${USER}`定义的),写以下的结构:
```VTL
#set( $MyName = "John Smith" )
```
如果这个变量的值没有在模板中定义,PhpStorm将在模板应用时询问你来指定它。
你可以防止在模板中美元符号`$`被作为变量前缀。如果你需要原本的美元富符号`$`,使用`${DS}`文件模板变量。当应用模板时,这个变量被作为一个文本美元字符(`$`)。
# 另请参阅:
规程:
* [从模板创建文件](/如何使用/常规指南/填充项目/从模板创建文件.md)
* [创建和编辑文件模板](/如何使用/常规指南/文件和代码模板/创建和编辑文件模板.md)
参考:
* [文件和代码模板](/参考/设置参数对话框/编辑器/文件和代码模板.md)