跳转到主要内容
  • 云客Drupal8源码分析之渲染上下文RenderContext、渲染器renderer

    当drupal的控制器返回渲染数组的时候,系统会派发视图事件,渲染数组被main_content_view_subscriber(主内容视图订阅器)处理,它根据请求的格式,将系统流程定向到对应的格式渲染器,系统默认提供了四个格式渲染器,他们被定义在容器的main_content_renderers参数里面,其中html格式对应的是服务id为“main_content_renderer.html”的html格式渲染器,我们得到的html格式页面几乎都是它渲染的,它将渲染分为两个步骤:先渲染b

  • 云客Drupal8源码分析之渲染数组(render array)

    从本质上讲现代所有的web软件系统中都用到了渲染数组,只不过在drupal世界里明确给了它这个名字:“渲染数组”。

    如果你使用过模板引擎,那么会很熟悉它,要使模板引擎工作,那么需要给它传入一些变量,这些变量将决定模板里面对应变量的显示,传入的这些变量往往是以数组的方式传入,键名代表模板里面的变量名,键值代表变量值,这样的数组就叫做渲染数组,比如著名的php小型框架CodeIgniter(简称CI框架)中的经典用法就是这样:

     

  • 云客Drupal8源码分析之页面标题

    本篇主题讲解drupal8系统是如何计算页面标题的,标题很重要,尤其对于搜索引擎优化来说,标题权重很高

  • 云客Drupal8源码分析之控制器执行及其解析器controller_resolver

    在drupal的HttpKernel核心中使用控制器解析器来取得要执行的控制器,以及解析出控制器需要的参数 除此之外也在多个地方用到它,比如渲染数组的回调解析,是一个重点内容

    它的服务ID为:controller_resolver,接受以下两个参数:

  • 云客Drupal8源码分析 之 页面缓存PageCache的请求策略RequestPolicy及响应策略ResponsePolicy

    在drupal8中提供了两个页面缓存模块,一个是PageCache用于匿名访问时,一个是dynamic_page_cache用于处理登陆用户的页面缓存。他们都有对应的请求策略及响应策略。

    那么这两种策略如何运作?作用是什么呢?请看下面

    先讲讲用于匿名用户的页面缓存PageCache的请求响应策略:

  • 云客Drupal8源码分析 之 缓存系统Cache

    在介绍drupal8的缓存系统前我们先了解一下缓存系统的本质及特性,缓存的存在依赖于两个目的:节省资源和提高速度,起不到这两作用则缓存没有存在的必要,当一个结果需要进行大量计算才能得到,而它又不会频繁更新那么缓存结果可以节省大量算力,缓存的是一个结果,这个结果可以存放在多台服务器上面实现负载均衡,从而进一步提高访问速度,在高访问网站中缓存非常重要,drupal8的缓存设计也是围绕这两个目的而设计。

  • 云客Drupal8源码分析 之 HttpKernel堆栈

    HttpKernel为何物?从名字可以看出它就是处理http请求的核心,只需要把请求对象传给它,就返回响应对象,一次http访问大体上就算完成了(为什么说是大体上,在实际应用中发送完响应还会做一些类似于析构函数工作的事情),为规范统一HttpKernel的使用symfony为此定义了HttpKernel接口,位于\vendor\symfony\http-kernel\HttpKernelInterface,在drupal8中所有HttpKernel定义类都必须要实现该接口,在Druapl8