在每个请求结束时都可以调用Doctrine的flush吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在每个请求结束时都可以调用Doctrine的flush吗?相关的知识,希望对你有一定的参考价值。

根据我对Doctrine及其flush命令的了解,实体管理器使用persist方法建立了对实体的更改的集合,将更改传播到相关实体,同时建立了“持久查询”以供调用flush时将提交数据库的那些更改。

如果我的理解是正确的,那么在每次请求结束时都具有某种应用程序挂钩(我的应用程序是ZF2应用程序,但可能是任何MVC应用程序)是否有意义? flush是无论如何都会被使用的方式(我从未在文档或博客文章中看到过类似的内容)?

答案

取决于您的应用程序,在每个请求结束时调用flush()方法都不会有问题。但是我认为您必须将其视为事务,您应该在模型层(或取决于控制器)中控制事务,而不是作为挂钩。那不是交易的目的,对吧?您应该能够控制应用程序的每一笔交易,而不是只为所有事务进行一次交易。

以上是关于在每个请求结束时都可以调用Doctrine的flush吗?的主要内容,如果未能解决你的问题,请参考以下文章

在apache中-每次调用php文件时都会从磁盘读取它们吗?

Doctrine 2.1性能问题

Doctrine 1.2 中的用户定义例程?

Symfony 4 / doctrine插入初始数据库数据

Doctrine2 - (如何)使用 main 获取关联对象

PHPUnit测试和Doctrine,连接太多