Drupal 8 目录结构

  当我们准备安装 Drupal 8 时,多多少少会注意到 Drupal 8 的目录结构变化,与 Drupal 7 相比,Drupal 8 的目录组织变得更加简洁,也更易于理解。

Drupal 8 与 Drupal 7 目录结构比较

  如果大家熟悉 Drupal 7 或者 Drupal 6,应该了解 99% 的工作都位于 sites/all/ 目录下,除此之外,网站根目录下的其它各个目录,几乎从来都不用光顾的。

Drupal 7 目录结构

  相较而言,Drupal 8 将内核的内容全部放置到 core 目录下,并提供更易理解的目录结构,即使是新用户,应该也不难理解每个文件夹是什么含义

 Drupal 8 目录结构 

  虽然 Drupal 8 的目录组织结构从表面上来看已经比较容易理解,但如果能够了解各个目录具体的作用,想必对今后的使用会更有帮助

Drupal 8 目录结构说明

  • /core - Drupal 8 的内核文件,所有核心的文件、功能和模块都位于这个目录下,有关 core 目录下的主要目录详见后文说明
  • /libraries - 第三方库,例如所见即所得编辑器,默认内核并未包含此目录,如有需要自行创建即可
  • /modules - 贡献模块与自定义模块存放位置,类似于 D6, D7 的 sites/all/modules,建议在此目录下新建 contrib 和 custom 目录以分别组织贡献模块和第三方模块
  • /profile - 安装配置文件
  • /themes - 贡献主题或自定义主题
  • /sites/[default|all|domain]/[modules|themes] - (在多站点情况下),只在指定站点使用的主题和模块可以放置在此目录结构下,以避免模块和主题出现在所有站点中
  • /sites/[default|all|domain]/files - (在多站点情况下),此目录放置各种站点文件,如用户上传的文件、站点配置等

 

  除以上主要目录结构外,对于内核开发人员(或者任何有兴趣了解的人),对 core 目录下的目录结构及作用有所了解是非常必要的。

  • /core/asset - Drupal 8 所使用的各种扩展库,如 jQuery, CKEditor, Backbone, Underscore, Modernizer, Normalize CSS 等
  • /core/include - Drupal 8 中还足以模块化的底层功能函数,如模块化系统本身
  • /core/lib - Drupal 8 的各种核心类(classes)
  • /core/misc - Drupal 8 核心所需要的前端杂项文件,如 js, css, 小图片等等
  • /core/modules - Drupal 8 内核模块
  • /core/profiles - Drupal 8 内置安装配置文件
  • /core/scripts - 开发人员可用的各种命令行脚本
  • /core/tests - Drupal 8 测试用相关文件
  • /core/themes - Drupal 8 内核主题
  • /core/vender - Drupal 8 核心所需要的后端库,如 Symfony2, Twig 等

 

  说明:尽管将模块和主题放置在 /modules 和 /themes 目录下比较方便,但 Drupal 8 目前依然支持 /sites/all/modules 和 /sites/all/themes 目录,从站点备份的角度上来讲,将模块和主题放在 /sites 下似乎更为方便,因为这样只需要备份 /sites 目录即可 —— 否则需要备份 /modules, /themes 和 /sites 三个目录