live template 变量必须用 $ 包裹,如 $name$;$end$ 唯一且必选,$selection$ 仅用于环绕模板;自定义变量须在 edit variables 中声明,跳转顺序由其列表顺序决定;expression 支持动态生成值,如 classname()、date("y-m-d")。

Live Template 变量必须用 $ 包裹,否则不生效
PhpStorm 的代码片段变量不是普通占位符,必须严格写成 $NAME$、$COLUMN$ 这种格式。写成 NAME、{NAME} 或 $name$(小写)都不会被识别,展开后原样输出。
常见错误现象:模板展开后看到 $MODEL$::where(...) 而不是实际类名;或者光标没停在预期位置——大概率是变量名没加 $,或大小写/拼写错误。
-
$END$是唯一预定义的“终点变量”,必须且只能出现一次,表示光标最终停留处 -
$SELECTION$是另一个预定义变量,仅用于环绕型模板(如选中代码后按 Ctrl+Alt+T),不可编辑,也不参与 Tab 跳转顺序 - 所有自定义变量(如
$VALUE$、$TABLE$)必须在Edit variables里显式声明,否则会被忽略
变量跳转顺序由声明顺序决定,不是文本位置
你在模板里写 where('$COLUMN$', '$VALUE$'),光标却先停在 $COLUMN$ 再跳到 $VALUE$,这不是靠空格或换行控制的——而是取决于 Edit variables 列表里的**排列顺序**。
操作要点:
- 打开
Edit variables后,变量列表从上到下就是 Tab 键的跳转顺序 - 第一个变量(如
COLUMN)最先获得焦点,最后一个必须是END - 如果勾选了
Skip if defined,且该变量已有默认值(比如id),Tab 就会直接跳过它 - 别指望靠缩进或换行调整顺序——那只是视觉错觉,无效
Expression 决定变量值怎么生成,别硬写死
变量值可以静态默认,也可以动态生成。用好 Expression 能省掉大量手动输入,比如自动填当前类名、推荐变量名、插入日期。
常用表达式示例:
-
className()→ 当前 PHP 类名(适用于 Eloquent 模型模板) -
suggestVariableName()→ 基于上下文推荐变量名(如对$collection推荐users) -
date("Y-m-d")→ 插入格式化日期(注意双引号不能省) -
array()→ 返回空数组字面量,适合初始化$items$ = array(); -
selection()→ 仅对$SELECTION$有效,获取选中内容(环绕模板必备)
性能提示:复杂表达式(如嵌套调用)不会明显卡顿,但避免写 fileExists(...) 这类 I/O 操作——IDE 不支持,会静默失败。
容易被忽略的两个坑:缩进崩坏 & 变量未触发
你粘了一段带缩进的代码进模板,结果展开后全挤在一行;或者明明写了 $MODEL$,却始终不弹出类名补全——问题往往不在变量本身,而在模板设置的细节。
- 模板编辑时务必勾选
Reformat according to style,否则缩进、换行、括号对齐全失效 -
Define里只勾了 PHP 不够,还得检查是否在正确上下文中激活(比如函数体内、类作用域内)——有些模板需额外勾选Everywhere或Statement - 变量表达式写错(如把
className()写成class_name())不会报错,只会返回空字符串,很难排查 - Windows 用户注意:
$ProjectFileDir$和$FilePath$返回的是正斜杠路径(C:/project),但如果你在变量里混用了反斜杠,可能意外截断
最隐蔽的问题:变量名重复定义(比如两个 $END$),会导致光标行为异常,且 IDE 不提示——删掉多余的 $END$ 就恢复正常。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










