我编写了自己的小 PHP MVC 框架,现在我正在探索 PHP MVC 框架中的缓存策略。我正在考虑可以缓存什么,在哪里以及如何缓存。
我拥有的框架是简单的 MVC 框架。我有前端控制器,它启动应用程序,注册类自动加载,设置 php 运行时指令......最后分析 URL 并将请求发送到适当的控制器、方法、动作控制器,无论你想如何调用它。从控制器,我可以访问域对象和可以将域对象持久保存到某些存储的数据映射器,大多数情况下是关系数据库。从控制器我可以访问域对象和数据映射器。
因此,就缓存而言,这些是我目前可以做的事情。使用 PHP,我可以使用作为操作码缓存的 APC 缓存,但我也可以使用它将变量保存到 RAM 中。然后我可以使用 Memcache 和 Memcahed 作为 APC 缓存,但如果我必须扩展,我可以从不同的服务器访问存储的缓存。这两个不是操作码缓存。
据我所知,我可以做这些事情:
在控制器中,我可以将域对象保存到缓存中,因此如果我已经在缓存中拥有该域对象,我不必每次都打开与数据库的连接。
我可以构建我的缓存系统,它将在引导时分析 URL,然后如果存在具有该页面 URL 的缓存,则获取该 URL 的已解释页面,如果不存在,它将处理请求,然后将该页面保存到缓存中并将其与当前 URL 关联
所以,正如你所看到的,我真的不知道如何在我的 MVC 中实现缓存,以及我应该在哪里缓存东西、如何缓存以及存在哪些可能性。
那么有人可以更好地解释这一点,或者将我重定向到一些我可以了解缓存的好文章吗?
谢谢!