Drupal非常像“Do Everything”CMS。有些模块允许您添加几乎任何功能,这很棒。但是,感觉很多功能(v5和v6)似乎散落在用户身上并且不直观。作为开发人员,我留下了使用泡泡糖和字符串修补网站的感觉。
例如,要将文本添加到默认搜索框(单击时消失),您必须添加一些jQuery代码或覆盖主题。我还发现菜单系统比它应该更复杂。
我是唯一有此意见的人吗?关于Drupal的核心你会改变什么(如果有的话)?
答案 0 :(得分:44)
对我而言,Drupal的最大缺点是Drupal网站的大部分存储在数据库中。由于没有自动方式在系统之间迁移内容或配置,因此必须手动完成对实际站点的更改,或者由过于复杂的代码处理。
答案 1 :(得分:35)
Drupal最大的缺点之一是它在非程序员网站构建者的交钥匙工具和开发人员构建复杂Web应用程序的框架之间徘徊。它为两个群体提供了一些很酷的东西,但是对一个群体的让步往往会绊倒另一群人。
Drupal社区的发展趋势是明确构建开发人员API,然后在API之上层管理UI和最终用户UI。这是一件好事,但仍然有很多遗留架构。该项目本周已有8年历史,每个站点都需要混合不同规模的模块。
如果有人还没有构建一个能够满足您需求的模块,那么在不破解核心代码的情况下有效地利用系统需要了解许多不同的内部API,许多独特的drupal数据结构,并研究一些偶尔时髦的工作流程。很多非常糟糕且不可能维护的网站在人们需要做一些棘手的事情并且没有专业知识(或时间)来研究“正确”的做事方式时会浮动。
(免责声明:我刚刚合着了几本关于Drupal的书,并且我做了Drupal全职工作,所以我尽可能远离'无偏见'。但我确实喜欢认为我保持透视。我也是Django的心。)
答案 2 :(得分:27)
Drupal会让你80%的开箱即用,但最后20%将花费数月和数月。
答案 3 :(得分:23)
缺乏真正的面向对象设计意味着您经常需要依赖其他开发人员的远见来留下“钩子”函数来让您改变某种行为。
使用Drupal 5我也遇到过这样的情况:完成相对简单的设计更改的唯一方法是修补Drupal本身(然后确保在每个新的官方Drupal版本中重新应用补丁)。但是,公平地说,你应该看到它在Drupal 4中有多糟糕。
我也很生气,当我花时间在Drupal的当前生产版本中识别错误或怪癖时,我提交了一个补丁,补丁永远不会被提交,因为基本上只有安全漏洞在当前修复稳定释放。
答案 4 :(得分:7)
Drupal是一个令人印象深刻的系统。它的所有功能都非常小,它的模块系统功能非常强大。但正如Eli所说,你的很多任务都将依赖于其他开发者以某种特定的方式做某事。
Drupal社区内部对其设计存在争议。在PHP的OOP功能强大之前,Drupal已经出现了,但现在他们已经开始讨论如何更改系统以使用面向对象的数据结构。根据您的喜好,这对您作为开发人员来说可能是一个不利因素。我自己也有两种想法。
对于新手来说,这个系统似乎也非常“神奇”,因为不知何故,它对所有这些疯狂的东西都做了很少的解释。 “我只是定义了一个函数,Drupal如何知道如何调用它?!”
但是,我必须说,一般来说,我是Drupal的忠实粉丝。这是一个很好的系统,可以在每个主要版本中获得更好的负载。我不能等待7。
答案 5 :(得分:6)
Drupal很适合入门,但你花费的时间更多“撤消”而不是实际完成任务。随着Drupal 6的发布,这种情况一直在发生变化,公平地说,它在贡献的模块中更为明显。
肖恩说,管理迁移也是一个问题。我仍然不知道将更改从开发站点移动到活动站点的好方法。
我不确定当前核心会有什么变化,而且大多数缺陷都在进行中。图像管理需要工作,默认的管理界面有点混乱,制作更复杂的布局而不需要获取视图/面板等,所涉及的可能会使用一些工作。
答案 6 :(得分:4)
我发现它非常复杂。作为一个PHP开发人员,我每天都在撕扯我的头发,而不是与php无关,而是与drupal本身无关。怎么/为什么/什么时候做X?它是一个需要被驯服的大野兽。文档仅限于一些非常好的指南,大量糟糕的指南,甚至更多无用的论坛帖子似乎总是出现在谷歌中。
后端的可用性是废话。自定义主题也会改变包的“admin”部分的布局,这可能会非常令人沮丧,导致布局不够漂亮。
如果您正在使用html切片器,则无法使用尚未专门为drupal创建的html。它几乎迫使你使用drupal-html,有很多div,每个div有5个冗长的类等,本质上,html / css家伙不能指望在这个级别知道drupal。
我不喜欢它依赖文件名的方式(长10个字,它们之间有非常细微的差别)来构建主题。
话虽如此,它可以做的一些非常酷的东西,可以节省你自定义php开发的天数和日期
答案 7 :(得分:2)
Drupal为非程序员提供了强大的工具,他们可以轻松地用更少的时间建立一个功能齐全的站点。但问题是Drupal的学习曲线太高了。
如果一个人是drupal的新手,并且想要定制一些东西,那么如果他想以正确的方式做这件事就会花费很多时间。在drupal中有很多方法可以做一件事,找出他最好或者适合新来者是头痛。
答案 8 :(得分:1)
我认为高学习曲线是唯一的缺点,因为大多数公司都在努力寻找优秀的Drupal人才。 http://drupalize.me/和http://buildamodule.com/正在努力减少这种高学习曲线。
答案 9 :(得分:0)
我发现默认管理界面与其他cms(如modx或joomla / mambo)相比并不是非常直观
答案 10 :(得分:0)
它是用PHP4编写的。这将从版本7开始更改。您当然可以在php5中编写自己的模块。作为一名经验丰富的Drupal开发人员,我发现我的简历因为我对php5的曝光率有限而受到影响。
这不是运行像SOAP这样的服务的最佳选择。调用整个Drupal堆栈来提供Web服务太过性能损失了。服务模块仍处于开发阶段。
没有数据库事务支持。当您将其扩展到极端负载时,这将成为一个问题。
从命令行运行测试会很好。这可以通过简单的1.x实现,但当前版本不能很好地支持它。简单不够成熟。干净的Drupal安装可能会使测试失败。一些默认包含的测试会强制您使用您可能不需要的内容类型和模块,并且您无法在不攻击最简单模块的情况下禁用这些内容类型和模块。
答案 11 :(得分:-1)
它有一个看似糟糕的安全记录:http://secunia.com/advisories/search/?search=Drupal