通过阅读几个 PHP 框架的源代码和文档,我了解到它们通常不会持久存在,除非您个人缓存或放入 $_SESSION 变量中。为什么是这样?为每个请求初始化框架似乎是一种浪费,至少序列化和存储一些核心对象和变量以节省处理和时间不是更好吗?
起初我认为这是相当主观的,并避免询问,但我读到的所有内容都没有真正谈到它,所以一定有一些明显的我错过了。
我发现的唯一真正提及/讨论的是 here这并没有直接回答我的问题,其中一些问题有点超出了我的理解范围。
编辑澄清:我不是在问 PHP 的内部工作原理,我知道持久性是如何工作的(即除非你通过缓存或 session 变量实现它,否则不会持久),我问为什么 PHP 框架不这样做这是他们的核心目标。同样,这对我来说似乎是主观的,但由于我读过的几乎没有提到它,而且这似乎是相当标准的做法,我想知道我错过了什么。
最佳答案
内存:
由于内存问题,大多数框架不会将这些核心机制存储在 $_SESSION 中。框架通常生成可以包含几兆字节信息的变量/对象。这听起来可能不是很多,但如果扩展到几千个用户,就会遇到问题。
数据“新鲜度”
将框架组件插入内存的第二个问题是它们很快就会过时。与其从内存中提取对象,不如检查它是否已过时,然后重新创建它(如果确实已过时),这比在每个请求时重新创建它的效率要低(大多数时候)。
我希望这能澄清事情。
关于php - 为什么 PHP 中的 MVC 框架在请求之间不保留?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9999024/