DWPF全称Dreamingwish Wordpress Frontend.

作为wordpress默认前端的替代,DWPF的优点在于访问速度快、安全、原生缓存。DWPF功能精简,去除了各种HOOK,页面执行速度快,数据库查询次数少,并原生支持页面缓存。DWPF的缓存粒度为模块,这意味着使用DWPF可以实现具有动态模块的静态页面。另外服务端可以为DWPF配置单独的Virtual Host,使用更低权限的数据库Account,提升安全性。

 1.速度提升

DWPF对速度的提升得益于原生的模块化缓存、Hook去除以及数据库查询结果重用:

  1. DWPF将每个页面拆分为模块,每个模块亦可以拆分为子模块,不同的模块都可以拥有自己的缓存,如此一来,一个页面即使有少量数据变化,也不用整页重算。
  2. DWPF并非在wordpress前端上修改得来,整个DWPF体系由梦维重写,wordpress庞大的Hook机制被完全去除,降低了扩展性,却带来了大幅的性能提升。
  3. 对于被大面积使用的数据库表查询结果(例如文章分类),DWPF查询后在整个Session周期保持,避免重复查询。

2.原生缓存

DWPF在编写的一开始就包含了缓存机制,任何模块都可以拥有自己的缓存以及缓存策略,当然,针对不同需求,也可以不对模块进行缓存。

DWPF的模块缓存结果是最原始的模块模板数据填充结果,如此可以更好的配合memcached或者其他的缓存系统。

3.安全性:独立权限控制

DWPF可以完全脱离于wordpress后端而存在,只有少量update请求会被转发给wordpress后端(如评论、注册等),并且这些请求转发都在服务端完成。

如此DWPF可以被配置在不同的数据库用户上,不同的文件系统上,不同的虚拟服务器上,甚至不同的硬件服务器上。

如果为DWPF配置全只读权限,并将wordpress后端私有化,那么理论上从外部进行的请求永远不会拥有写权限。因此很难被植入木马或者钓鱼网站。

4.干净的依赖

配置DWPF并不需要在wordpress后端安装插件或者进行代码修改,通过指定文章分类、指定文章、指定文章meta即可配置DWPF需要的额外信息,且这种依赖方式不会由于wordpress升级而带来变化(除非wordpress本身进行了翻天覆地的改变)

5.DWPF的适用人群

由于脱离了wordpress的插件和hook机制,DWPF只适合于web开发者。

获取DWPF

由于Dreamingwish3.0将改版为Angular实现,所以DWPF的view后面会改为Angular实现。在github上clone到源码:https://github.com/sevensth/DWPF

DWPF中有对SQL的封装的模块,虽尚未完善,但也许会对喜欢封装SQL操作的来使用的开发者有参考意义。

另外DWPF中实现了一个完整的Router(造轮子),喜欢研究router也可以研究其源码。

评论模块尚未加载