第八部 热点问答
##我为什么需要关注Drupal 8?
起初Drupal是为开发者设计的,在过去的日子里,Drupal提供了一系列的API,让用户能够利用代码来构建网站,这其中包括内容录入Form、管理页面以及侧边栏Block等。在后期的版本尤其是Drupal 7中,进行了一些为非技术用户的倾斜,为基础任务提供了用户界面(安装、数据建模、信息架构以及着陆页等)。现在多数Drupal站点都会安装一些第三方模块例如可视化编辑器,Views等等。在Drupal核心和第三方模块的支持下,Drupal开始为一部分最大规模的重要网站提供支撑。
Drupal 8在Drupal 7的成功基础之上更进一步,顺应民意,集成了更多的功能,例如改进的编辑体验、完备的多语言功能、大量的建站功能。Drupal 8也更加贴近当代的Web潮流,移动优先的设计思路以及焕然一新的前端。对开发者来说,Drupal 8提供了大量的后台特性以及现代化的面向对象的基础代码。总的说来,Drupal 8为内容编辑、站点建设、开发和设计提供了强大的支持,使之成为一个稳固的项目基础,能更好的面对各种技术、设备和服务。
Drupal 7是一个稳定、健壮和成熟的平台,将在未来的几年中持续获得支持。很多Drupal 8的功能都可以在Drupal 7中以某种方式进行实现(稍后会披露更多内容)。Drupal 8很伟大,不过如果你等不及,Drupal 7仍然是个好选择。学习Drupal 8也是个好主意——在你的项目需要Drupal 8之前做好准备。
##Drupal 8听起来很厉害!为什么还没发布?
一旦严重问题(包括bug和task)减少至0,Drupal 8的发布候选版就会创建。候选版在公开发布并不再产生严重问题后,Drupal 8就粉墨登场了。
只要登录Drupal.org,就可以随时查看Drupal 8的进度,’Contributor Links’显示了各种问题的数量。
##Drupal 8发布之后会怎样?
Party,很多的Party。
接下来,会在Drupal 8的基础上,启动一个新的发布计划,在基础的月度Bug修复和安全补丁(8.0.1, 8.0.2….)之外,增加了半年一次的对核心的”主要版本”(8.1.0, 8.2.0…)升级。这种发布内容可能包含新功能,向下兼容的API增强,或者更多。在几次主版本升级后,Drupal 8会发布一个“长期支持版本(LTS)”,接下来就会开始Drupal 9的开发。
这意味着Drupal用户无需为了一个新的核心功能等待几年,我们会每几个月更新一次特性和API,直到这个平台达到成熟。这同时意味着不愿意冒险,更需要稳妥解决方案的用户可以只盯着LTS版本,几年做一次更新(连主版本升级都跳过)。
##我什么时候可以开始使用Drupal 8?
这个问题,主要在于你的角色:
如果你是个模块开发者,你应该马上开始关注Drupal 8。目前还可以为Drupal 8提供有效的反馈,以确保你迁移模块所需要的功能会随Drupal 8一起发布。不过在发布之前,API还存在变化的可能,所以你需要在RC后跟进修改。
如果你是一个文档作者、翻译者或设计师,注意Drupal 8的界面、界面文本和标记在第一个RC之前是不会冻结的,所以用户向的文档、翻译以及主题应该在RC1之后启动。当然,比较激进的开发者现在可以跟进,来发现我们尚未修补的问题。
如果你有一群不介意协助修复核心Bug,进行模块迁移的开发人员,并且上线时间在2015年末或2016年,你可以在Drupal 8进入Beta后期或RC期开始建设你的Drupal 8站点。如果你需要一些新版本中的新特性,这一时机应该较为可靠。
绝大多数站点应该在Drupal 8发布之后的几个月后,第三方模块的迁移大致完成后,才会开始进行使用。可以关注Drupal 项目应用图表。当D7和D8两条线交叉时,意味着D8用户数开始超过D7,大多数的升级障碍已经解除,可以考虑跟进了。
##好吧,那这段时间我该干什么?
继续用Drupal 7。Drupal 7是一个稳定、成熟、健壮、强大的平台,并且在Drupal 8 LTS发布之前会持续得到Bug修复的支持,在Drupal 9的LTS出现之前(多年以后吧),会持续得到安全更新。而且很多Drupal 8功能现在在Drupal 7中也能找到:
WYSIWYG:CKEditor: https://drupal.org/project/ckeditor
就地编辑:Quick Edit: https://drupal.org/project/quickedit
响应式工具栏:Mobile Friendly Navigation Toolbar: https://drupal.org/project/navbar
响应式前端主题:Omega, Zen, Adaptive, Aurora等基主题
响应式管理主题:Ember:https://drupal.org/project/ember
响应式图像:Picture:https://drupal.org/project/picture
响应式表格:Responsive Tables:https://drupal.org/project/responsive_tables
简化Overlay:Escape Admin: https://drupal.org/project/escape_admin
多语言:
- Internationalization: https://drupal.org/project/i18n
- Entity Translation: https://drupal.org/project/entity_translation
- (以及很多别的模块)
Block:Bean:https://drupal.org/project/bean
配置管理:Features: https://drupal.org/project/features
Web Service:RESTful Web Services: https://drupal.org/project/restws
##如何升级呢?
站点的内容(用户,文章等)以及众多的配置项(变量,Block设置等),Drupal 8为D6(已经在核心中)和D7(正在开发)提供了升级方法来保障核心模块的升级(第三方模块需要编写自己的升级方法)。简单说来,你需要在搭建Drupal 8站点时,保持你的Drupal 6或7的站点的运行,然后运行一个类似现有update.php的脚本来进行内容迁移。如果验证通过,切换一下webroot,几乎无需停机就完成了。
对于目前站点中使用的第三方模块,安装7.x版本的Upgrade Status模块,这个模块会显示各模块的站点以及D8升级状态。
站点中的自实现模块,就需要自行升级了。Drupal Module Upgrader项目能够协助你进行升级,并针对做出的变更出具报告。需要注意的是,这个项目还处于非常活跃的开发状态中,以跟进更多的Drupal 8 API,这个项目也不是全知全能的,所以还需要手工修正一些内容。
站点中的自定义主题,必须转换为Twig,可以试试Twigifier项目,该项目尝试将这一步骤进行自动化处理。
所以目前来说,你的升级过程主要取决于你目前站点的实际状况,总体看来,采用知名的第三方模块比自实现代码在升级上具有更大的优势。
更多的关于Drupal 6/7升级到D8的信息,请阅读https://www.acquia.com/blog/getting-your-site-ready-drupal-8。
##有什么我能帮忙的?
想要Drupal 8快点来?来帮忙吧!
最直接的方式就是协助修复严重问题,随时关注Drupal Core更新,这里总会提供最新的需要注意的消息。
如果你刚开始接触Drupal核心开发,或参与到有用的事情中去,可以参加每周两次的core mentoring hours。
想要协助Drupal 8的迁移工作?请加入IMP (Migrate in core) team。
想要参与Drupal 8的文档工作?请浏览https://drupal.org/node/1005304。
想要学习Drupal 8 API来帮助其他开发者?请帮忙把Examples for Developers移植到Drupal 8。
希望为自己和其他开发者节省移植模块的时间?请参与编写Drupal Module Upgrader。
##谢谢!
请为2300多个Drupal 8贡献者掌声!