2016年9月11日drupal深圳社区组织了一次聚会,做了个D8入门分享,这里整理了一下,D8正式版是2015年11月19日发布,我也是从这个时候开始学习研究drupal ,过去差不多一年时间了,入门过程的很多东西记忆犹新,可能将来这些感受会慢慢的忘记,所以在这一次聚会征集的时候我把它记录分享出来,一来可以帮助处于drupal大门之外正在观望的朋友以及决定深入研究正在入门的朋友,二来自己也做一个笔记,drupal很庞大,我的学习还处于不断进行中,有些地方可能讲的不准确,还请已经走过来的朋友指正。
首先我做一个简短的自我知识背景介绍,这样可以和大家产生一个共鸣,理解到我学习drupal过程中出现的感受,从事php有8年时间,经历学习过c、c++、java现在专注于php,在web领域深入理解过的cms有phpcms,帝国cms,特别是帝国cms,为它开发了一些插件。深入理解使用的框架有CodeIgniter简称ci,用ci开发过微信公众号管理系统等等,这些背景知识会在学习drupal的过程中产生对比和共振。以上就是大致的背景知识,我没有了解过drupal8以前的版本,第一次接触drupal就是从这个面向对象的d8开始的,下面分几个部分来讲。
一:为什么选择drupal
希望这部分对正在判断要不要深入研究drupal的朋友和正在坚持学习D8的朋友们有用。准备花大量时间去学习一个cms,选择一定是非常慎重的,我认为有两件东西非常重要:精力和坚持,它直接决定一个人整个生命周期能产出的价值,这是我选择php又进一步选择其中的drupal最底层的一个原因,人的精力必须要得到尊重和高效利用,选择php就是因为它的设计哲学是人的时间比机器的时间更加宝贵,我想这当然是对我们有限生命的人类来说是应该的,相比其他语言它更加智能,为我们做的更多,省更多的时间,直接对一个实例化的对象赋值一个不存在的属性是不是很自由方便呢?不用考虑数据类型,但想考虑的时候又能考虑到是不是很自由方便呢?这些都是c和java等不具备的,至于拿运行速度说事的人我想说可能得直接去用汇编或者机器语言了,这里我不是说哪个开发语言不好,他们有各自的历史角色和定位,存在必有道理,我认同php的设计哲学,所以我选择了php,说了那么多php其实我是想说选择drupal的原因和它根本上是一模一样的,这里说说我的经历,进入web领域以来建站开发是从dz开始的,但他只是个论坛,我想要的很多东西没有,所以开始了cms之路,使用大众化的cms极大的满足了很多需求,相比自己去开发一个专用系统节省了不少的时间,那时候我主要选择帝国cms做工具,和帝国同行是从6.0版本开始的,对于当时没有太多想法的我来说那是很满足的,可问题慢慢的出现,在2009年的时候我接触过劳务派遣,就是把许多的临时工在不同的工厂之间进行调派,大量的工作需要电话和现场处理,于是想到建立一个网站系统去处理工厂与工人的结算问题、互相评价问题、自动调派问题等等,这个时候再看帝国cms就已经严重的不能满足需求了,摆在面前有两条路,首先就是大规模的二次开发,这个时候发现如果这么做,帝国升级的时候会产生大量的工作要做,而且由于帝国历史原因程序里面的命名等开发规范不是太规范,这样对协同开发产生不利影响,所以放弃了。只能进行第二条路:完全的自己开发,如果从底层php级别开始的话无疑浪费大量时间,团队运作成本很高,这个时候开始把希望寄托于php框架,经过对比后选择了ci框架,用了框架之后感觉是很省事而且自由,也能容易的找到协同开发的人员,可是事情还是感觉远远的不完美,有大量的组件在php大社区里面有功能类似的,但各自都在重复的发明轮子,如果已经发明的轮子不够好重新发明当然是好的,但如果已经很好了,还有必要吗,而且自己真的有精力把各个细分领域的轮子都给