## **从头开始创建文件模板**
1. [打开设置参数对话框](https://www.kancloud.cn/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8/%E5%B8%B8%E8%A7%84%E6%8C%87%E5%8D%97/%E9%85%8D%E7%BD%AE%E9%A1%B9%E7%9B%AE%E5%92%8CIDE%E8%AE%BE%E7%BD%AE/%E8%AE%BF%E9%97%AE%E8%AE%BE%E7%BD%AE.md),在编辑器节点下,选择[文件和代码模板](https://www.kancloud.cn/%E5%8F%82%E8%80%83/%E8%AE%BE%E7%BD%AE%E5%8F%82%E6%95%B0%E5%AF%B9%E8%AF%9D%E6%A1%86/%E7%BC%96%E8%BE%91%E5%99%A8/%E6%96%87%E4%BB%B6%E5%92%8C%E4%BB%A3%E7%A0%81%E6%A8%A1%E6%9D%BF.md)
2. 切换到**Files**标签页
3. 在工具栏点击![新增](http://image.jellychen.cn/uploads/2016/11/new.png)并指定模板名称,文件扩展名,和模板的主体,可以包含:
1. 纯文本。
2. `#parse`指令用来[包含](https://www.kancloud.cn/ervinhua/phpstorm/441766#%E5%88%9B%E5%BB%BA%E5%92%8C%E5%BC%95%E7%94%A8%E5%8C%85%E5%90%AB%E6%A8%A1%E6%9D%BF)文件
3. 预定义变量将被展开到相应的值,用以下格式`${<variable_name>}`
可用的预定义文件模板变量有:
* `${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包含模板](https://www.kancloud.cn/%E5%8F%82%E8%80%83/%E8%AE%BE%E7%BD%AE%E5%8F%82%E6%95%B0%E5%AF%B9%E8%AF%9D%E6%A1%86/%E7%BC%96%E8%BE%91%E5%99%A8/%E6%96%87%E4%BB%B6%E5%92%8C%E4%BB%A3%E7%A0%81%E6%A8%A1%E6%9D%BF.md)提供一组额外变量,也就是,可重用模板可以被包含到其它**PHP file template**。内置**PHP file template**用于生成文件头和[PHP文档注释](https://www.kancloud.cn/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8/%E8%AF%AD%E8%A8%80%E5%92%8C%E6%A1%86%E6%9E%B6-%E5%85%B7%E4%BD%93%E6%8C%87%E5%8D%97/PHP-%E5%85%B7%E4%BD%93%E6%8C%87%E5%8D%97/%E5%88%9B%E5%BB%BAPHP%E6%B3%A8%E9%87%8A%E6%96%87%E6%A1%A3.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}`被忽略。
4. 自定义变量。它们的名字可以在模板中用`#set`指令定义或在文件创建期间定义。
4. 要使用原本的美元富符号`$`,使用`${DS}`文件模板变量。当应用模板时,这个变量被作为一个文本美元字符(`$`)。
5. 应用改变并保存对话框。
## **从已存在的一个创建文件模板**
1. 打开[文件模板](https://www.kancloud.cn/%E5%8F%82%E8%80%83/%E8%AE%BE%E7%BD%AE%E5%8F%82%E6%95%B0%E5%AF%B9%E8%AF%9D%E6%A1%86/%E7%BC%96%E8%BE%91%E5%99%A8/%E6%96%87%E4%BB%B6%E5%92%8C%E4%BB%A3%E7%A0%81%E6%A8%A1%E6%9D%BF.md)设置页面并切换到**Files**标签页。
2. 在工具栏点击![复制按钮](http://image.jellychen.cn/uploads/2016/11/copy.gif),并然后修改模板名称,扩展名,和所需的代码
3. 应用改变并关闭对话框。
## **从文件创建文件模板**
1. 在编辑器中打开目标文件
2. 在主菜单,选择**Tools | Save File as Template**
3. 在打开的[文件和代码模板](https://www.kancloud.cn/%E5%8F%82%E8%80%83/%E8%AE%BE%E7%BD%AE%E5%8F%82%E6%95%B0%E5%AF%B9%E8%AF%9D%E6%A1%86/%E7%BC%96%E8%BE%91%E5%99%A8/%E6%96%87%E4%BB%B6%E5%92%8C%E4%BB%A3%E7%A0%81%E6%A8%A1%E6%9D%BF.md)对话框指定新模板名称并编辑代码,如果需要的话。
4. 应用改变并关闭对话框。
## **创建和引用包含模板**
包含模板用来定义可重用代码块来通过`#parse`指令插入到文件模板中。内置**PHP file template**用于生成文件头和[PHP文档注释](https://www.kancloud.cn/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8/%E8%AF%AD%E8%A8%80%E5%92%8C%E6%A1%86%E6%9E%B6-%E5%85%B7%E4%BD%93%E6%8C%87%E5%8D%97/PHP-%E5%85%B7%E4%BD%93%E6%8C%87%E5%8D%97/%E5%88%9B%E5%BB%BAPHP%E6%B3%A8%E9%87%8A%E6%96%87%E6%A1%A3.md)。你也可以定义自己的模板。
1. 在[文件模板](https://www.kancloud.cn/%E5%8F%82%E8%80%83/%E8%AE%BE%E7%BD%AE%E5%8F%82%E6%95%B0%E5%AF%B9%E8%AF%9D%E6%A1%86/%E7%BC%96%E8%BE%91%E5%99%A8/%E6%96%87%E4%BB%B6%E5%92%8C%E4%BB%A3%E7%A0%81%E6%A8%A1%E6%9D%BF.md)设置页面,切换到**Includes**标签页。
2. 在工具栏点击![新增](http://image.jellychen.cn/uploads/2016/11/new.png)并指定模板名称,文件扩展名,和代码。做以下之一:
* 使用[预定义文件模板变量](https://www.kancloud.cn/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8/%E5%B8%B8%E8%A7%84%E6%8C%87%E5%8D%97/%E6%96%87%E4%BB%B6%E5%92%8C%E4%BB%A3%E7%A0%81%E6%A8%A1%E6%9D%BF/%E6%96%87%E4%BB%B6%E6%A8%A1%E6%9D%BF%E5%8F%98%E9%87%8F.md#%E9%A2%84%E5%AE%9A%E4%B9%89%E6%A8%A1%E6%9D%BF%E5%8F%98%E9%87%8F)
* 创建自定义模板变量并在包含模板中使用`#set`VTL指令定义他们的值。
例如,如果你想使用你的姓名而不是登录名(通过预定义变量`${USER}`定义的),写以下的结构:
~~~
#set( $MyName = "John Smith" )
~~~
如果这个变量的值没有在模板中定义,PhpStorm将在模板应用时询问你来指定它。
你可以防止在模板中美元符号`$`被作为变量前缀。如果你需要原本的美元富符号`$`,使用`${DS}`文件模板变量。当应用模板时,这个变量被作为一个文本美元字符(`$`)。
3. 要使用包含模板,切换到**Templates**标签,选择目标目标并点击**Edit**
4. 要包含一个模板,在代码中插入[#parse指令](https://www.kancloud.cn/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8/%E5%B8%B8%E8%A7%84%E6%8C%87%E5%8D%97/%E6%96%87%E4%BB%B6%E5%92%8C%E4%BB%A3%E7%A0%81%E6%A8%A1%E6%9D%BF/%E8%A7%A3%E6%9E%90%E6%8C%87%E4%BB%A4.md)
# 文件模板变量
在这个页面中:
* [基础](https://www.kancloud.cn/ervinhua/phpstorm/441765#%E5%9F%BA%E7%A1%80)
* [预定义模板变量](https://www.kancloud.cn/ervinhua/phpstorm/441765#%E9%A2%84%E5%AE%9A%E4%B9%89%E6%A8%A1%E6%9D%BF%E5%8F%98%E9%87%8F)
* [自定义模板变量](https://www.kancloud.cn/ervinhua/phpstorm/441765#%E8%87%AA%E5%AE%9A%E4%B9%89%E6%A8%A1%E6%9D%BF%E5%8F%98%E9%87%8F)
## 基础
一个[文件模板](https://www.kancloud.cn/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8/%E5%B8%B8%E8%A7%84%E6%8C%87%E5%8D%97/%E6%96%87%E4%BB%B6%E5%92%8C%E4%BB%A3%E7%A0%81%E6%A8%A1%E6%9D%BF/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包含模板](https://www.kancloud.cn/%E5%8F%82%E8%80%83/%E8%AE%BE%E7%BD%AE%E5%8F%82%E6%95%B0%E5%AF%B9%E8%AF%9D%E6%A1%86/%E7%BC%96%E8%BE%91%E5%99%A8/%E6%96%87%E4%BB%B6%E5%92%8C%E4%BB%A3%E7%A0%81%E6%A8%A1%E6%9D%BF.md)提供一组额外变量,也就是,可重用模板可以被包含到其它**PHP file template**。内置**PHP file template**用于生成文件头和[PHP文档注释](https://www.kancloud.cn/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8/%E8%AF%AD%E8%A8%80%E5%92%8C%E6%A1%86%E6%9E%B6-%E5%85%B7%E4%BD%93%E6%8C%87%E5%8D%97/PHP-%E5%85%B7%E4%BD%93%E6%8C%87%E5%8D%97/%E5%88%9B%E5%BB%BAPHP%E6%B3%A8%E9%87%8A%E6%96%87%E6%A1%A3.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}`定义的),写以下的结构:
~~~
#set( $MyName = "John Smith" )
~~~
如果这个变量的值没有在模板中定义,PhpStorm将在模板应用时询问你来指定它。
你可以防止在模板中美元符号`$`被作为变量前缀。如果你需要原本的美元富符号`$`,使用`${DS}`文件模板变量。当应用模板时,这个变量被作为一个文本美元字符(`$`)。
- 服务器购买到搭建宝塔
- 结构规范
- php基础
- php简介
- php是什么
- PHP 能做什么
- PHP 如何运行
- 如何了解弱语言
- 安装环境
- 安装LNMP
- 宝塔
- phpstudy
- PHP基本语法
- PHP 标记
- 从 HTML 中分离
- 指令分隔符
- 注释
- php 数据类型
- 类型检测
- 四种标量类型
- boolean(布尔型)
- Integer 整型
- Float 浮点型
- String 字符串类型
- 两种复合类型
- array(数组)
- object(对象)
- 两种特殊类型
- resource(资源)
- NULL(无类型)
- 类型转换
- 变量
- 变量定义和命名规范
- 传值和引用
- 预定义变量
- php预定义变量
- $_SERVER详解
- 变量范围
- 全局变量
- 静态变量
- 可变变量
- 常量
- 常量简介
- 常量定义
- 相比变量
- 魔术常量
- 运算符
- 运算符简介
- 算术运算符
- 赋值运算符
- 位运算符
- 比较运算符
- 错误控制运算符
- 执行运算符
- 递增(减)运算符
- 逻辑运算符
- 字符串运算符
- 数组运算符
- 新增操作符
- 控制结构
- 控制简介
- if 语句
- while 语句
- for 语句
- foreach 语句
- break 语句
- continue 语句
- switch 语句
- declare 语句
- return 语句
- include 语句
- PHP 函数
- 函数简介
- 用户自定义函数
- 函数的参数
- 返回值
- 可变函数
- 内部函数
- 匿名函数
- PHP 的类和对象
- PHP 的类和对象简介
- 基本概念
- 对象继承
- 属性
- 类常量
- 自动加载对象
- 构造和析构函数
- 访问控制
- 范围解析操作符(::)
- 静态static
- Static 关键字
- 抽象类
- 接口
- 匿名类
- 面向对象其他特性
- const关键字
- final关键字
- abstract用于定义抽象方法和抽象类。
- self、$this、parent::关键字
- 接口(interface)
- trait关键字
- instanceof关键字
- 魔术方法
- 构造函数和析构函数
- 私有属性的设置获取
- __toString()方法
- __clone()方法
- __call()方法
- 类的自动加载
- 会话控制
- cookie
- PHP 操作 cookie
- 项目实战
- SESSION
- Session 的初步介绍与实验准备
- PHP 操作 session
- 项目实战2
- http
- 特点
- 工作过程
- request
- response
- HTTP状态码
- URL
- GET和POST的区别
- HTTPS
- 常用函数
- 常用的字符串函数
- 常用的数组函数
- 常用文件函数
- 常用时间函数
- 常用日历函数
- 常用url函数
- 面试题常见
- 时间戳
- 技术类文档
- 技术开发文档
- 开发环境
- 开发规范
- 注释规范
- 开发目录结构
- 数据库字典
- 路由
- 定时任务
- 获取系统配置
- 系统常用函数
- 后台表单
- 消息队列
- 第三方类库标注
- 需求文档
- 数据库
- MYSQL
- 事务(重点)
- 索引
- 存储过程
- 触发器
- 视图
- 导入导出数据库
- 优化mysql数据库的方法
- MyISAM与InnoDB区别
- 外连接、内连接的区别
- 物理文件结构
- MongoDB
- Redis
- 运用场景和实例
- pgsql
- 服务器
- Nginx
- 正向代理和反向代理
- 负载均衡
- Linux常用命令
- 基本目录和命令
- php开发工具
- phpStorm编辑器
- 安装和汉化
- 链接ftp
- 常用操作
- 常用快捷键
- 自定义快捷键
- 使用快捷键新建目录和文件
- 使用快捷键快速查找文件、类、方法
- 多文件切换
- 快速搜索设置项
- 多点编辑
- 方法重构
- 自定义文件模板和代码片段
- 自定义文件模板
- 自定义代码片段
- Xdebug 调试插件
- 安装Xdebug 调试插件
- 在PHPStorm 中使用 Xdebug 插件调试代码
- Vi Box虚拟机
- Vi Box 虚拟机 Oracle VM VirtualBox
- 虚拟机辅助工具一-Vagrant
- 华硕主板BIOS设置中VT虚拟化技术选项怎么开启 Oracle VM VirtualBox
- 沟通工具
- 文档分享
- 流程图
- 任务分配
- 代码托管
- 缺陷管理
- 设计图
- gitLab
- 安装
- 汉化
- Gitlab 用户和项目管理
- Gitlab 持续集成与自动构建实践
- PHP进阶
- 大流量解决方案
- PSR规范
- RESTFUL规范
- 设计模式
- 单例模式
- 策略模式
- 工厂模式
- 简单工厂模式
- 工厂方法模式
- 抽象工厂模式
- 外观模式
- 享元模式
- 代理模式
- 命令模式
- 中介者模式
- 观察者模式
- 状态模式
- 建筑者模式
- 适配器模式
- 桥接模式
- 装饰器模式
- 排序算法
- 冒泡排序算法
- 二分查找算法
- 直接插入排序算法
- 希尔排序算法
- 选择排序算法
- 快速排序算法
- 常见网络攻击类型
- CSRF攻击
- XSS攻击
- SQL注入
- Cookie攻击
- thinkphp
- thinkphp5命令行
- git
- Git 常用命令操作和基础学习
- 傻瓜与白痴的笔记本
- 学习
- 一、Git 与 GitHub 的来历
- 二、在 GitHub 上创建仓库
- 三、安装
- Windows 上安装 Git
- 安装2
- 四、克隆 GitHub 上的仓库到本地
- 五、GIT基本操作哦
- 六、Git 分支操作
- 一、添加SSH关联授权
- 二、为 Git 命令设置别名
- 三、Git 分支管理
- 七、多人协作 GitHub 部分
- 八、多人协作 Git 部分
- 九、Git tag 和 GitHub releases
- composer
- Composer 基础使用
- 安装和使用
- 在项目中集成PHPmailer
- 认识composer.json和composer.lock文件
- composer的其他命令操作
- 本地创建composer包
- 提交自己的依赖包到composer Packagist
- crontab计划任务
- Linux任务计划crontab
- php 的 计划任务——Crontab
- bootstrap前端框架
- 入门
- 实战技巧
- 后台模板样式——admin
- 第三方接口对接
- 微信
- 敏感词过滤
- 微信图片检测
- 短信类型
- 阿里云短信
- 容联云短信
- 飞鸽短信
- 媒体
- 新闻接口测试
- 免费新闻
- 免费视频
- nba赛事,未测试
- 豆瓣电影接口
- 音乐接口
- 网易短视频接口
- 知乎微信接口
- 百度ai
- 百度语音
- 图片识别
- 腾讯
- 腾讯im
- 腾讯云直播
- 腾讯滑动验证
- 物流快递
- 快递鸟、快递100
- 推送
- 极光推送
- 地图&天气
- 获取城市和天气预报
- 地址获取和定位
- 地址转换经纬度
- 图片类型
- 360新闻图片
- 多平台翻译
- 实名认证
- 七牛云
- 云合同
- 多站点收录查询接口
- 打印机
- 第三方登录
- 微信登录
- 支付
- 支付宝app支付
- 微信提现+退款
- 微信app支付
- 微信支付公式
- 类库
- 图片类
- phpqrcode实战:生成二维码
- 图片处理类
- 验证码类
- 消息类
- PHPMailer
- 分词类
- ik
- PHPAnalysis
- 自己封装的方法
- GD库
- 自动获取图片主题颜色
- 图片转素描
- 生成海报
- 图片转字符
- 验证码
- 图片转黑白灰
- GD库实现图片水印与缩略图
- Imagick扩展
- 将一张image图片转化为字符串的形式
- 基本方法
- 图片路径转base64
- 生成文件后缀图片
- url路径判断拼接
- 防篡改入口文件
- php中文姓名判断
- 可控抽奖
- 特殊截取
- 银行卡位(特殊卡号不支持)
- 微信红包计算
- 数组和对象互转
- php批量更新修改数据库
- base64_img上传
- 删库删目录————跑路
- 字符串特殊符号过滤
- 首字母转成默认头像
- 生成随机字符串
- 根据id转 邀请码
- 日志写入
- 字符串截取,超出显示省略号
- 清除html标签+清除html标签,字符串截取
- 计算时间差的函数和演示
- php判断路径是否是绝对路径,如果不是拼接至绝对路径
- sql 参数过滤
- php敏感词过滤
- 省市区分别截取
- 生成csv
- 无限极分类
- api接口返回封装的方法函数
- xml和数组互转
- 获取thinkph5下控制器和方法名
- 过滤
- 获取服务器信息
- php随机颜色
- 创建多级目录
- 推广码
- 跨域检测
- 二维码
- 文档类
- word
- PHPWord
- tcPdf
- MPDF
- dompdf
- FPDF、Fpdi类库
- excel
- PhpSpreadsheet导入
- phpExcel
- 时间
- PHP-农历+节气+节日等类库
- 时间类库
- 最好用的是人性化时间差
- 文件管理类
- 文件操作类
- 文件夹操作
- php操作ftp的类库
- curl
- 数据库操作类
- Db扩展函数
- 数据库备份
- 仿tp5的Db库
- 不常用mysql
- 自动生成数据库字典
- 字符串
- 字符串操作helper/Str
- 随机生成姓名
- 随机生成类
- php字符串类
- 中文转拼音的类库
- 分类
- 缓存
- 数据验证
- 身份证相关操作
- 安全类
- 表单生成类
- 自动生成表单,未完待续中