drupal 8

Drupal 8 的动态页面缓存

Drupal 8 现在有了动态页面缓存。Page Cache 模块只对匿名用户生效,而 Dynamic Page Cache 模块则更进一步的为所有用户提供服务。

4 月 8 日起,Drupal 8 缺省开启了页面缓存。刚好五个月以后也就是 9 月 8 日,Dynamic Page Cache 模块也加入了 Drupal 8,同样的也是缺省开启。

动态页面缓存是什么?

Page Cache 模块缓存的是完全渲染之后的 HTML 响应内容

他假设每个响应只有一种,这个假设只对匿名用户有效。相对于 Drupal 7,8 的创新是加入了 Cache Tags(缓存标记),这就使得在使用页面缓存的时候,依然能够及时更新页面,不再呈现过期内容。

从请求到响应:Drupal 8 机制概览

《Drupal 8 模块开发》的第一篇文章中,我们对路由方面做了一些了解。我们看到,现在是通过声明路由,配合Controler,来创建一个 Path 对应的页面。后面我们看到,可以返回一个渲染数组,这个数组将被还原为标记,并展示在页面的内容区域中。然而,你是否注意到在这水面之下,Drupal 实际上是把这个数组根据 SymfonyHTTPKernelInterface 转换为一个 Response 对象?

本文中,我将会深入到 Drupal 8( 以及 Symfony 2 )之中,看看从用户发起请求,到看到响应的过程中,到底发生了什么。上面的例子是这一过程的可能性之一,今天我们会看一下其他的可能。本文目标是理解系统的弹性如何帮助我们制作应用。

扩展Twig

本章描述了如何对Twig 1.12进行扩展。如果你在使用一个旧版本,请移步到过往文档继续阅读。

有多重扩展Twig的方法,可以加入新的标记、Filter、Test、操作符、全局变量以及函数。甚至还能利用Node visitors对解析器本身进行扩展。

本文的第一章节会介绍如何简单的扩展Twig。如果你想要在不同项目中进行复用,或者共享给他人使用,后面章节中还提供了如何创建扩展的内容。

第二部分:Guzzle

前一篇博客中,我们学习了一下Composer这一PHP的类加载和依赖管理工具,并且利用这一工具下载了Guzzle。Guzzle是一个基于PHP的HTTP客户端库,极大的简化了对RESTfull web服务的调用过程。在本文中,我们将学习一些Guzzle的基本功能,并在这个基础上建立一套简陋的SDK。

入门

距离上次的Composer项目已经有一段时间了,让我们首先更新一下,获取最新的代码。首先编辑你的composer.json文件:

{
    "require": {
        "guzzlehttp/guzzle": "4.1.*"
    }
}

我们可以在composer.json文件所在目录执行composer update命令,更新到最新的guzzle代码。如果你是重新开始,那么应该运行的是composer install命令。

在前一篇博文中,我提供了一些基础的代码可以放在index.php文件中:

第一部分:Composer

译者:强烈推荐Composer中文网

Drupal 8带来很多变化,这变化不仅体现在技术和架构上,更体现在社区生态上。目前我们还没能完全体会这些变化造成的影响,但是我相信随着时间的推移,Drupal 8的转型将会为社区带来巨大的益处。众多改变之中,比较醒目的一项就是引入外部代码的决定。对比之前的版本的做法,这是一个令人震惊的戏剧性转变。本系列文章会尝试介绍这一变化。

Drupal不是唯一发生变化的系统,PHPBB、EZPublish甚至一些非产品化的PHP系统都开始进行这方面的尝试,这一现象也被称为“PHP复兴”。这一复兴的原动力是互操作性,而互操作性建立在以下基础之上:

第八部 热点问答

Tags: 

我为什么需要关注Drupal 8?

起初Drupal是为开发者设计的,在过去的日子里,Drupal提供了一系列的API,让用户能够利用代码来构建网站,这其中包括内容录入Form、管理页面以及侧边栏Block等。在后期的版本尤其是Drupal 7中,进行了一些为非技术用户的倾斜,为基础任务提供了用户界面(安装、数据建模、信息架构以及着陆页等)。现在多数Drupal站点都会安装一些第三方模块例如可视化编辑器,Views等等。在Drupal核心和第三方模块的支持下,Drupal开始为一部分最大规模的重要网站提供支撑。

第六部 全新的后台

全新的配置管理系统

对建站人员和开发者来说,Drupal 8的最值得期待的变化就是配置管理系统。在Drupal 7和之前的版本中,内容和配置都保存在数据库里(甚至有的配置和内容会混在同一张表中),这使得不同环境间的站点迁移非常困难(例如开发环境到生产环境)。围绕这个难题,诞生了很多相关的技术,包括 hook_update_N(), Features module,还有更古老的方式——记录一套环境上的配置,然后去另一套环境上手工执行。然而,所有这些尝试都是做着同一个事情:想要规避一个残酷事实——Drupal核心没有很好的提供配置发布支持,直到Drupal 8的出现。

页面