Drupal 究竟是什么

Drupal 是一个由Dries Buytaert创立的自由开源的内容管理系统,用PHP语言写成。在业界Drupal常被视为内容管理框架(CMF),而非一般意义上的内容管理系统(CMS)。

——摘录自Wikipedia

内容管理系统(英语:content management system,缩写为 CMS)是指在一个合作模式下,用于管理工作流程的一套制度。该系统可应用于手工操作中,也可以应用到计算机或网络里。作为一种中央储存器(central repository),内容管理系统可将相关内容集中储存并具有群组管理、版本控制等功能。版本控制是内容管理系统的一个主要优势。

——摘录自Wikipedia

而实际上在大多数时候我们在说CMS的时候其实是在说"建网站" , 而忽视了CMS最原本的定义, "内容管理".

而对于这么强大的CMS来说, 只是拿来建网站, Drupal的学习路径确实有点复杂了.

Drupal有这么几个很有意思的特点.

建表方案

除非你自己构建代码, Drupal的建表方案在制作垃圾站时成了非常大的问题, 每一个字段都会建一张表. 根本无法胜任上千万文章时的情况, 分表难度过大, jion导致速度过慢, 每个字段不但一张表, 竟然还有一张revision表, 这些不够竟然还有缓存表. 我怎么拿你来做垃圾站??

但是如果我们面临的是这样的问题呢, 我想要存储各个部门的计划表,操作表,报销表,或者是 人物\任务\事件\项目\以及各自的关系, 总共涉及 大大小小上百张表单(似乎有点夸张),  然后呢由于项目紧任务重, 表单大概什么样先有了,先做起来吧, 做到一半我们发现,这个人物联系地址原来要求只填一个的,现在要求填两个; 那个计划表需要再增加个备注,那个人物的定义有问题,里面还包含组织,组织需要和人物分开来,人物属于组织,但是2/3以上的字段都是一样的. 那个分类字段有5个项目要选, 不对增加到100个(似乎还是有点夸张).

面对这样的需求, 我们使用Drupal的时候会发现,这似乎不是什么特别大的问题, 建表, 鼠标点两下的事情,100张表单也是鼠标点嘛; 单选变多选, 多选变无限选, 也没问题, 本来就是一个字段一张表, 改的无非就是前端的显示样式,鼠标点一下; 分类选项5个变100个,没问题,多选框变输入联想框. 组织关系, entity_reference嘛,不怕,也是点两下的事情

在应对真正的内容管理时, 我们发现Drupal已经都准备好了, 而且目前没有用上任何代码.

视图及字段显示

有了字段, 有了表单, 就需要 列表 需要展示了.

视图就是干这活的, Drupal 的视图包含了 字段 分类 筛选 查询 关联 等等一系列的功能, 可以拿视图做文章列表,也可以拿视图做文摘, 然后字段内容也可以通过视图完成筛选功能, 对于非常多的内容类型,使用视图可以快速的完成排版.

而且,似乎还是没有用上什么代码.

流程

流程,workflow, 这个模块并没有加入drupal的核心, 毕竟 不是通用模块.

workflow, 那当然就是走流程的, 实现一个报销流程,填制报销单,审批,财务,退回,结案, 这么几个步骤, 使用 workflow模块所要做的就是点击 点击 再 点击.

还是没有代码

REST_API

REST_API 当然就是接口, 数据都有了, 表单,显示,也都有了, 我们可能需要一款app来进行手机端使用, 这时候配置 REST_API模块马上就可以开放接口给手机开发人员使用了.

还是没有代码

嗯? 微信平台的后端? 对, Drupal完全可以胜任

Drupal是什么

于是我们可以说Drupal是一款CMS, 一款真正的CMS, 一款内容管理系统, 而不是一个建站工具, 如果你要建站, 展示内容 可以用WordPress 等平台, 如果要CMS 实现内容管理, 可以尝试Drupal.

使用Drupal研发 内部管理系统, 其效率是非常高的, 对于客户要求的快速变更, 适应能力也是非常强的. 快! 还保质.

为什么 Drupal 学习过程特别难

如果有一个框架,需要你开发表单,视图,流程,api, 你会慢慢写出来, 如果有一个框架, 不但有框架, 还有界面, 还把功能都可视化了, 很多功能可以找模块时, 需要开发完成的是 更高级别的工作,  从点鼠标到写代码当然是有一个非常非常大的垂直梯度. 毕竟 真正实现一个系统还是需要5%的代码开发工作的.

难就难在这里.

 

分类