PHP学习笔记(6) PHP静态化页面的实现思路

引子:在制作网站过程中,能够实现内容的管理属于cms功能.但是对于访问量较大的网站,如果实现静态化页面会减轻服务器负担.今天也来简单说一下我针对网站静态化的一些想法.

静态化的实现思路:
思路一:使用系统的输入输出缓冲函数,当用户请求响应的静态页面时.路由到PHP文件,打开php的输出缓冲.整理内容.输出.这样做的好处是能够增加搜索引擎的友好度.
思路二:.通过使用PHP模板引擎.创建静态文件,保存在服务相应目录下.这样做的好处是能够真正减轻服务器负担.
我采用的是第二种办法.现在说一下实现的思路.
 
首先,文件结构:网站内容无非几种.文章.列表.图文.首页.等.那么对应的文件也就是index.html xxxlist.html,articlexxx.html.那么结构就是首页.同级别文件夹有文章,图文,文章下面有分类1,分类2等文件夹,分类下面是文章1,文章2等文件.图文类同.文章文件夹下面的index.html应该是文章的列表.文章->分类->index.html应该是该分类的相关文章的列表.其余类同.
建立好目录结构后接下来就是文件命名.
 
第二部,文件命名:既然是从数据库抓取数据,那么分类可以用id来创建文件夹.文章创建固定文件夹.这里用常量.
好处是能够一处定义多处使用.图文创建固定文件夹.图文的分类文件夹也用id和文章一样.这样文件夹的命名完成了.列表文件,对于文章列表来说.可能有好多页.那么就需要生成多个文章列表.这里用listpage1.listpage2.html来命名单个文件.
 
 
第三部,数据源.数据都存在相应的数据库表里面,那么如果想生成一个页面,就要从数据库里面抓数据出来.一个文章页面不可能只显示文章的内容.还应该有导航.版权.seo信息等.不过导航.版权等信息是公共的.那么创建一个类.就叫page类,其余所有页面继承自这个类.这个类里面的构造方法实现从数据库抓公共数据出来.每一种页面创建一个类继承自page类的类.如index类.里面可能有轮播.可能有文章列表等内容.那么当newindex的时候就应该返回一个包含所有首页应该显示信息的对象. 这样我们每个页面的所有内容都能够通过new相应的类来取得.
 
第四部,静态化,写一个静态化类.静态化是需要顺序的.最先被静态化的应该是最下层的文件.如具体的文章.然后是列表.最后才能是主页.这里我使用了smarty模板引擎.把相应的数据(通过new相应的对象得到的)送到相应的模板里面.然后fetch方法得到文件.再将相应的内容存储到对应的地方.于是实现了静态化的方法.
 
 
这里只说了思路.具体实现过程中有一些小的困难.欢迎浏览我博客的人能够提出问题.大家一起讨论.
原文地址:https://www.cnblogs.com/swordphp/p/2805050.html