关于Drupal8
Drupal 8 是目前最优秀最强大的开源CMS、CMF,可以做任何系统的开发,所以强大的Drupal8也用在了各个领域,包括网站、小程序、业务系统、平台等多种场景。Drupal8的特点如下:
-
可扩展的内容模型
-
面向对象OOP架构
-
用户角色管理
-
灵活的模板
Drupal8的优化建议
Drupal的易用性导致Drupal的性能就会下降,因为要考虑很多场景的通用性,要考虑兼容,又有很多种模块,代码庞大,所以Drupal8相对来讲,性能有时候会出现问题,本文就Drupal8的优化,提出以下几个建议:
-
尽量减少模块
一个网站,通常都会拥有不同功能,需要不通模块,所以会导致Drupal的模块越来越多,因此建议禁用不必要的模块。
-
主题的设计简洁化
页面的内容可以简洁一下,不必要一个页面很长很多内容放在一个页面,导致也加载比较慢。
-
开启Drupal默认的缓存
Drupal的后台,有默认的缓存功能,可以开启。
-
使用第三方缓存模块
使用Memcahce、Redis 等Drupal模块可以加速Drupal的缓存。
-
尽量不要.module文件
在Drupal8架构里面,基本都是autoload,OOP编程,.module导致加载臃肿。
-
尽量不要用hook
如上,Hook是函数编程,并且会每次调用都执行,因此能减少使用Hook最好。
-
不要把所有的东东都放node里面,自建Entity
众所周知,Drupal的默认entity是node,但是不要把所有的内容都方到node里面,比如message、跟帖这种,导致node表很大,网站其他的内容也加载比较慢,建议自建Entity。
-
压缩CSS、JS等文件
合并CSS、JS文件,减少文件数量。
-
使用HTTP gzip压缩
Apache、Nginx都支持gzip压缩,文本文件压缩比可以达到80%的压缩,因此推荐使用服务器压缩,并且不会产生副作用。
-
使用CDN加速
使用CDN加速静态资源。
-
图片使用懒加载
图片资源可以考虑使用懒加载。
-
使用Nginx代替apache
相对来讲apache要比nginx+fpm慢一些,所以推荐使用Nginx+FPM代替apache。
-
可以使用headless Drupal
也可以使用纯前端的架构,数据通过api的方式获取数据即可,实现Headless的Drupal架构。