Drupal是一个"尽力而为"的CMS.有些模块允许您添加几乎任何功能,这很棒.但是,感觉很多功能(v5和v6)似乎散落在用户身上并且不直观.作为一名开发人员,我留下了使用泡泡糖和字符串拼凑一个网站的感觉.
例如,要将文本添加到默认搜索框(单击时消失),您必须添加一些jQuery代码或覆盖主题.我还发现菜单系统比它应该更复杂.
我是唯一有此意见的人吗?关于Drupal的核心你会改变什么(如果有的话)?
对我而言,Drupal的最大缺点是Drupal现场的大部分存储在数据库中.由于没有自动方式在系统之间迁移内容或配置,因此必须手动完成对实时站点的更改,或者由过于复杂的代码处理.
Drupal最大的缺点之一是它在非程序员网站构建者的交钥匙工具和开发人员构建复杂Web应用程序的框架之间的界限上跳舞.它为两个团体提供了一些很酷的东西,但对一个人群的让步往往会绊倒另一个.
Drupal社区的发展趋势是明确构建开发人员API,然后在API之上层管理UI和最终用户UI.这是一件好事,但仍然有很多遗留架构.该项目本周已有8年历史,每个站点都需要混合不同规模的模块.
如果有人还没有构建一个能够满足您需求的模块,那么在不破解核心代码的情况下有效地利用系统需要了解许多不同的内部API,许多独特的drupal数据结构,并且偶尔研究一些时髦的工作流程.很多非常糟糕且不可能维护的网站在人们需要做一些棘手的事情并且没有专业知识(或时间)研究"正确"的做事方式的情况下漂浮.
(免责声明:我只是为了一本关于Drupal的书而共同撰写了几章,而且我做了Drupal的全职工作,所以我尽可能远离'无偏见'.但我确实认为我保持透视.我也是Django的心.)
Drupal会让你80%的开箱即用,但最后20%将花费数月和数月.
缺乏真正的面向对象设计意味着您经常需要依赖其他开发人员的远见来留下"钩子"函数来让您改变某种行为.
使用Drupal 5我也遇到过这样的情况:完成相对简单的设计更改的唯一方法是修补Drupal本身(然后确保在每个新的官方Drupal版本中重新应用补丁).但是,公平地说,你应该看到它在Drupal 4中有多糟糕.
我也很生气,当我花时间在Drupal的当前生产版本中识别错误或怪癖时,我提交了一个补丁,并且补丁永远不会被提交,因为基本上只有安全漏洞在当前的稳定版本中得到修复.
Drupal是一个令人印象深刻的系统.它的所有功能都非常小,它的模块系统功能非常强大.但正如Eli所说,你的许多任务都将依赖于其他开发者以特定的方式做某事.
Drupal社区内部对它的设计存在争议.在PHP的OOP功能强大之前,Drupal已经出现了,但现在他们已经开始讨论如何更改系统以使用面向对象的数据结构.根据您的喜好,这对您作为开发人员来说可能是一个不利因素.我自己也有两种想法.
对于新手来说,这个系统似乎也非常"神奇",因为不知何故,它对所有这些疯狂的东西都做了很少的解释."我只是定义了一个函数,Drupal如何称之为deuce如何调用它?!"
但是,我必须说,一般来说,我是Drupal的忠实粉丝.这是一个很好的系统,可以在每个主要版本中获得更好的负载.我一个人等不及7.
Drupal很适合入门,但你花费的时间更多"撤消"而不是实际完成任务.随着Drupal 6的发布,这种情况一直在发生变化,公平地说,它在贡献的模块中更为明显.
肖恩说,管理迁移也是一个问题.我仍然不知道将更改从开发站点移动到活动站点的好方法.
我不确定在当前的核心中我会有什么改变,而且大多数缺陷都在进行中.图像管理需要工作,默认的管理界面有点混乱,制作更复杂的布局而不需要获取视图/面板等,所涉及的可能会使用一些工作.