symfony2中运行周期内执行的回调函数
2016-02-04 14:43
399 查看
1.类似于tp中的钩子函数。
2.用法详解
有时,在插入、更新或删除某个实体之前或之后,您需要执行一个动作。这种行为被称为“生命周期”的回调,他们回调方法,你需要执行过程中的一个实体的生命周期的不同阶段(如实体插入,更新,删除等)。
如果你使用注释你的元数据,使生命周期回调的开始。如果你使用YAML或XML映射这是没有必要的。
1.开头通常写:
/**
* @ORM\Entity()
* @ORM\HasLifecycleCallbacks()
*/
class Product{
// ...
}
2.结尾通常写
/**
* @ORM\PrePersist
*/
public function beforeInsert()
{
$this->status = 0;
$this->createTime = new \DateTime();
}
3.总结
preremove事件发生时,对于一个给定的实体在各自的EntityManager删除操作执行的实体。
postremove事件发生后一个实体的实体已被删除。它将在数据库删除操作之后调用它。
prepersist事件发生时,对于一个给定的实体在各自的EntityManager坚持实体执行的操作。应该指出的是,这一事件只会引发一个实体的初始坚持(即它不会触发对未来的更新)。
preupdate事件发生在数据库更新操作的实体数据。
2.用法详解
有时,在插入、更新或删除某个实体之前或之后,您需要执行一个动作。这种行为被称为“生命周期”的回调,他们回调方法,你需要执行过程中的一个实体的生命周期的不同阶段(如实体插入,更新,删除等)。
如果你使用注释你的元数据,使生命周期回调的开始。如果你使用YAML或XML映射这是没有必要的。
1.开头通常写:
/**
* @ORM\Entity()
* @ORM\HasLifecycleCallbacks()
*/
class Product{
// ...
}
2.结尾通常写
/**
* @ORM\PrePersist
*/
public function beforeInsert()
{
$this->status = 0;
$this->createTime = new \DateTime();
}
3.总结
preremove事件发生时,对于一个给定的实体在各自的EntityManager删除操作执行的实体。
postremove事件发生后一个实体的实体已被删除。它将在数据库删除操作之后调用它。
prepersist事件发生时,对于一个给定的实体在各自的EntityManager坚持实体执行的操作。应该指出的是,这一事件只会引发一个实体的初始坚持(即它不会触发对未来的更新)。
preupdate事件发生在数据库更新操作的实体数据。
相关文章推荐
- Android百度地图
- java注解处理器
- 配置 StarDic 字典
- 英寸 寸
- HTTP方法:GET和POST区别
- Struts2架构解析
- symfony2中Entity的字段类型以及Entity的操作
- 免费DDOS攻击测试工具大合集
- SAP中的贷项凭证、借项凭证
- selenium java 程序 无法打开火狐及相关问题
- Servlet中forward和redirect的区别
- CURL不使用文件存取COOKIE
- JDK里的设计模式
- 记不住就存下来---- HTML 5 原有的表单及表单控件
- ItemClick防止连续点击
- 【Android】3.13 路径规划功能
- iTrem2和vim主题配置
- Java学习笔记--split篇
- centos安装redis3为系统服务
- VC 模式对话框和非模式对话框的创建,销毁和区别