83. 资源css与js优化处理

为了提高页面加载性能,drupal可以开启资源优化处理,这将在不影响加载顺序及加载条件的情况下,将可聚合的资源文件合并在一起,多个文件变成一个文件,这样就减少了浏览器下载次数,同时还对资源进行缩小化处理,去掉注释、空行、空格、BOM,以及纠正资源编码等,优化器的调用入口是在资源解析器

76. 主题钩子注册theme.registry

我们通常说起钩子时,是指一个函数,但主题钩子却不是这样,她是一个数组,其中包含着怎样将渲染数组转化为输出的信息,如模板位置、模板变量、预处理函数等(输出可以有多种格式,习惯起见后文以html为列),这个数组云客将其称为主题钩子定义,在系统内部维持着一张主题钩子注册表,该表实际上是一个比较大的多维数组

75. 主题初始化器

在主题处理器一节提到了主题扩展对象(\Drupal\Core\Extension\Extension),该对象包含了一个主题的全部信息,但仅仅是该主题的信息,在系统中许多地方实际使用的是更高层次的活动主题对象(见下),她包含前者所有信息,还处理库覆写、库继承等主题与主题间相互影响的内容,该对象就是在主题初始化器中产生的,同时主题初始化器还负责加载主题主扩展文件等工作

74. 主题协商theme negotiator

drupal主题系统十分灵活,你可以全站使用一套主题,用响应式设计去兼容移动端和pc端,如果响应式无法满足要求,你可以在各端分别使用不同的主题,但其灵活性远不止如此,实际上在同一个站点中你可以根据任意条件使用不同的主题,系统后台设定的只是默认值而已,比如在pc端或移动端你可以为不同语言采用不同主题

72. 资源库assets library详解

让我们从css说起,在小型网站中css文件比较简单,开发和维护容易,但大型项目则不同,可能会有数万行,开发人员众多,他们需要协同,随着项目进化还经常需要修改,这就对css开发提出了一些要求,比如:
可预见Predictable:比如其他开发者用了已定义的一个class就应该可以看见该class带来的效果
可重用Reusable:有些样式不必反复定义