进阶篇15. 主题开发的新纪元

随着Drupal8的发布,核心中新加入了两个新的基主题,一个是Stable一个是Classy,其中Stable基主题为系统前端提供尽可能少的HTML标签和类名,CLassy则是适当的增加了更多一些的类名。这一点我们在第一篇第18节中已经提到过了。总而言之他们的任务是:改变之前Drupal6和7时代基主题毫无顾忌的在页面上打印尽可能多的标签和类名的现象。(至于为什么Drupal7的基主题会这样做,我在上一本书的第六章第13节中给出了非常详细的解释,虽然是对历史的回顾,但是对于理解什么样的主题才是好的主题很有帮助,因此建议阅读。)

但是,我们没有讲的是,主题层的这个变动,使得主题开发者基本上不必再像Drupal6和7时代那样去和系统给出的代码较劲。这些多余的标签、类名并不仅仅使得有洁癖的人看着不舒服,在实际的项目中还往往成为开发者不得不花费很多时间和精力去移除的东西,在第二篇第7节中就有一个类似的例子,系统生成的一对多余的Div标签影响了已经写好的CSS样式。

除了以上的变化之外,Drupal8还抛弃了之前使用的PHPtemplate引擎,转而使用Twig。它的特点是对前端工程师友好,主题开发的时候再也不需要在模板中写各种奇葩的PHP语句了——虽然在各种公开的场合,人们都称赞这样做更加安全,但是,对于专业的主题开发者来说,其实他们根本就没有人关心安全问题,他们只是不会也不喜欢写PHP罢了,因为他们的定位是偏前端的。

这两个变化,主题不再打印或者尽可能少的打印标签和类名、以及Twig引擎的使用,对于Drupal8的主题层是一个革命性的改进。并不是说,技术上有多么牛,而是思路上的进步——让专业的人做专业的事,让Drupal主题开发者好好研究他们的前端技术,少在修改主题中的类名、预处理函数和PHP代码上浪费生命,只有这样才能解放他们的生产力和创造力。

于是,主题开发者们突然发现自己当家做主人了,前端行业飞速发展的好时代,主人们哪里肯错过,不整点高大上的东西到主题里怎么对得起Drupal的名号呢?

于是乎,主人们开始大谈SMACSS,OOCSS,BEM,Style guide driven development,component-based theming 等等,这些新的方法论在Drupal7的时代里,想都不敢想,因为就算能实现也要费个九牛二虎之力。

但是现在终于是时候了!!

随着前端行业各种新概念和思想的产生,社区的先行者们不断思考、反省传统Drupal主题开发流程中的弊端,并尝试把前端行业的新思路、新方法加入到Drupal主题开发的工作流程中。这期间有些方法和工具,曾经小范围流行过,然后慢慢的又消失了,本着实用主义的思路,笔者认为没有必要去搞清楚这种变化的来龙去脉,也不一定要去学习最新出现的东西。但是,这此过程中,会有一些思路和方法,经过很多人和比较长时间的检验,最终成为在某一段时间内,适用性比较强、对工作流程和结果提升比较大、理论体系比较稳定的思路、工具和方法论,晴空将在后续的内容中,逐一为大家进行讲解。

本书共76小节:

评论 (写第一个评论)