你在这里

如何学习Drupal

Drupal学习经验分享。可以以不同角色分享,比如你是做后端开发的,你是如何学习的?

突然登陆界面没了

无法登陆

今天打开网站,莫名其妙的,登陆界面打不开了。请教是什么情况。我是一头雾水。什么都没更改一开始都好好的。

drupal8文章标题设置居中,和文章开始设置空出,在哪设置啊???大神指点。。。

drupal8文章标题设置居中,和文章开始设置空出,在哪设置啊???大神指点。。。

标签: 

drupal8在哪设置文章的摘要,可以连接到全文。。

drupal8在哪设置文章的摘要,可以连接到全文。。

标签: 

云客Drupal8源码分析之渲染缓存RenderCache

渲染数组被渲染的时候,为了提高性能,会将渲染结果保存到缓存中,这样就避免了重复渲染
并且每个子元素的渲染结果都可以被独立缓存,如此一来子元素也可以避免重复渲染

不过缓存中保存的渲染数组是经过简化的,渲染缓存默认只缓存以下内容,这样经简化的数组叫做“CacheableRenderArray”:

 

云客Drupal8源码分析之渲染占位符及其产生器

渲染占位符及渲染占位符产生器

drupal使用渲染占位符机制的目的是为了提高系统性能,具体来讲就是提高缓存利用率和效率

云客Drupal8源码分析之钩子、模块处理器、函数定义

元旦刚刚过去,继续保持一周一篇的速度,这是Drupal8云客源码分析系列在2017年的开篇,来讲几个极其重要的内容,它们是钩子、模块处理器、函数定义。
钩子:
如果是开发新手可能对这个慨念陌生而好奇,许多工作多年的工程师可能对它也缺乏深度理解,不止是在php中,它其实是软件工程中的重要慨念,什么意思呢?为什么要叫做钩子?既然叫做钩子直觉的就会联想到钩什么?怎么钩?简单而直接的回答就是在软件运行的某时刻去钩起一段代码来执行,这个“钩起”也可以称为调用、获取等,但总不能叫做“调子”“获子”吧,所以形象起见叫做钩子,可以将钩子理解为一种软件实现机制,函数调用就是钩子最简单的情况,执行函数时调用它就是钩起它,函数就是钩子实现,函数名就是钩子名,怎么钩就是通过函数名来钩。

云客Drupal8源码分析之缓存上下文CacheContext

“上下文Context”这个词是什么意思呢?平常生活中它常见于语言、文字交流里面,意思是当前交流处于一个特定的环境下,依托前面的内容交流才有意义

比如这句话:“他正在学习drupal”,如果单独说是没有意义的,因为你不知道“他”指代谁,在交流中前面一定定义清楚了“他”是谁,这个“他”就是上下文,这个谁就是上下文的值

在软件工程中,上下文是一种属性的有序序列,它们为驻留在环境内的对象定义环境。不过你无需去理会这样晦涩的定义,只需要知道“上下文”相当于“环境”就行了,它们是等价的。

假设将来能制造出真正的类人智能机器人,那么把它投放到社会中,激活那一刻,他第一件事情就是侦查环境,换句话说就是搞清楚自己所在的上下文,然后他才能有所行动

可见上下文概念是如此重要,在脑子里面建立一个印象:有目的的行为是建立在环境之上的,万事万物皆是如此

 

云客Drupal8源码分析之渲染上下文RenderContext、渲染器renderer

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

具体的工作是由渲染器完成的,它负责将渲染数组转换为html字符串,本篇的主题就是这个渲染器。

要理解它是怎么工作的需要先理解一些知识。

首先是渲染数组,关于它可阅读本系列的《云客Drupal8源码分析之渲染数组(render array)》

其次是渲染上下文,下面介绍一下渲染上下文:

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

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

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

 

$this->load->view('show_news', $data);

其中参数show_news指定网页模板,参数$data就是程序中准备好的一个数组,包含了传递给模板的变量

 

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

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

页面有标题当然是针对请求格式为html而言,在整个执行流程中如果控制器直接返回响应对象,那么标题计算就在控制器中随意进行
流程仅仅停留在Symfony的渲染管道中,如果控制器返回的是渲染数组,那么将派发视图事件,主内容视图订阅器MainContentViewSubscriber将判断请求格式,并启动对应的格式渲染器渲染输出
今天的话题就发生在请求格式为html的HtmlRenderer渲染器中,这个渲染器用到了标题解析器
这就是本主题的内容,下面看看标题是怎么计算出来的:

页面

订阅 RSS - 如何学习Drupal