Php 正在通过URL进行缓存';这是个好习惯吗?

Php 正在通过URL进行缓存';这是个好习惯吗?,php,url,caching,content-management-system,Php,Url,Caching,Content Management System,我正在用PHP构建一个相当大和复杂的CMS,我的计划是在它的某些部分实现缓存(有可能为特定的页面/部分打开/关闭缓存)。经过一些研究,我得出结论,使用URL将是定位和检索cahced文件的最佳实践。我的意图是实现一个“整页”解决方案,以避免对所有应该缓存的页面进行突兀的查询和缓存整页 伪代码如下所示(不包括修改日期): 这种方法可以被认为是良好的做法吗?我认为这取决于页面上是否有用户生成的内容,例如,如果我查看页面,而你查看页面,我们是获得不同的页面还是同时获得相同的页面?页面上是否有任何形式的

我正在用PHP构建一个相当大和复杂的CMS,我的计划是在它的某些部分实现缓存(有可能为特定的页面/部分打开/关闭缓存)。经过一些研究,我得出结论,使用URL将是定位和检索cahced文件的最佳实践。我的意图是实现一个“整页”解决方案,以避免对所有应该缓存的页面进行突兀的查询和缓存整页

伪代码如下所示(不包括修改日期):


这种方法可以被认为是良好的做法吗?

我认为这取决于页面上是否有用户生成的内容,例如,如果我查看页面,而你查看页面,我们是获得不同的页面还是同时获得相同的页面?页面上是否有任何形式的“动态”内容

如果页面不打算按用户/用户进行更改,则整页缓存是最经济的。如果它们可能会逐个用户进行更改,则可以通过[url.sessionid]进行缓存,如果不这样做,则可以通过完整url进行缓存

另一种方法是缓存页面中可能保持不变的部分(例如博客条目)

最后是数据缓存,您只需在本地缓存数据库中的动态数据


整个系统取决于您的需求

其想法是使用“整页”的思想每隔X分钟缓存一次产品页面或论坛视图等内容,然后禁用“用户收件箱”或“您的论坛订阅”等内容的缓存(或者通过url+Sessiond启用查询缓存/存储缓存)。
$filename = md5($the_full_url);

if (file_exists($filename)) get_cached_file($filename);

else write_cached_file($filename);