PHP开源框架Drupal怎么样?

首先我想说在中国请不要使用drupal,也不要学习drupal,真的,最近刚刚用drupal做了一个商业网站,drupal不适合中国绝对不是危言耸听。

好,现在开始正文,我会从不仅仅是开发角度,而是从项目管理,流程,开发,测试,上传同步。等各个角度drupal的噩梦般的缺点。也许文字较多,希望有人能耐心看一下。我会把开发中的问题留到最后讲,因为实在是太多问题了。我们程序的经理一句话总结drupal只适合1个人开发。

1、流程问题:我是产品经理, 作为普通的web项目流程 一般为, 需求确立->做出设计(psd)->完成前端(html)->编程阶段(php)。 而drupal的流程为 需求确立->做出设计(psd)->drupal编程阶段(php)->完成前端html。 这样的流程直接导致了很多问题:

问题1:psd到html有一个切图的流程,大家都知道现在psd做出来的设计搞到html总会有一些差异。字体大小,图片大小,和一些效果。例如每行放多少个字,图片的尺寸比例都是需要等到html做完后微调确立的。而用drupal的流程没有切图这个步骤,所有的html都是drupal的view生成出来的,结果导致这个psd和html差异的问题被放大,需要更多时间去调整。

问题2:由于html是view生成出来的,垃圾代码非常多,是普通手工写的代码3倍以上。可读性非常差,是做html人的恶梦。而且一些效果很难做出来(圆角就不要想了,直接用一个大背景算了)

问题3:由于流程 做出设计(psd)->drupal编程阶段(php)->完成前端html。 每次改动view生成的html的ID都会变化,然后html的css就要重做。举个例子:例如传统的方式html做好后,原来是一行显示的是城市改成显示省,城市,区后 html和css不需要该任何东西。因为css控制的一行的文字。 而drupal用view改了之后每个node都会生成span,需要重新调整样式给新建的样式,而且如果是更改了某个块, 块ID变了,css就没了,还要重新调整css里面的id, 做html的人不知道要做多少次重复的劳动。而且由于html是view生成的,从html里面的n多垃圾代码找到一个可以用于写css的ID真比自杀还难受。

总结,流程的不同直接导致了drupal是做html人的恶梦

2、成本问题:在中国找到一个会html的不难,找一个会php的也不难,而且成本也不高。 即使找一个会做html css 并且会php也不是很难。 那么如果用drupal开发会变成什么样呢?你必须找一个需要精通html+CSS+JS+php的人,而且缺一个不可(注意是要精通)。而且还要同时找精通drupal的人,这样的人在中国能找到吗?

为什么呢? 首先drupal的view绝对不是仅仅懂html就能掌握的,view是给精通sql的程序员用的,所以不懂程序的人,或者不精通程序不精通sql的人请不要学习drupal了, drupal看似一个cms系统,但实际drupal是一种语言,一个操作系统。 没有3年以上的大型开发经验的人根本无法掌握。 (就连开发drupal的都无法掌握drupal)

我们开发这个项目时,从德国总部请来了drupal专家,而且还聘请了中国drupal社区的二号人物(一个法国人),而且我们前端都是可以自己写js的人,这些的人成本有多高。关键是即使是这样我们还是无法降服drupal。

总结 drupal是老板的恶梦。

3、从现在开始谈开发问题。

drupal 的view 说白了就是一个简单的sql查询工具。 一个程序员可以轻松手写sql达到目的,而用view可能怎么写也达不到目的,做同一个逻辑增加很多时间成本,而且关键很多都达不到。 还有就是定位的pannel只能往顶部或底部插入,不能往中间插,如果当初需求没定好想改,那就改整个页面的布局吧。而且html的样式还要重做。 一个开发同事原来会html,会js,会sql,现在做了drupal后被强制变成了viewer,只会写view了,html,css代码也不会了,sql不会了, 整个人的职业发展终结了。

  1、传值问题,例如js 与 flash之间传值, 现在变成了 view,js, flash, 之间传值 本来就不是很容易的问题现在又多了一成, 很多东西时间需要3倍以上时间用了很多办法才能做到。

  2、多人开发问题, 普通流程都是用svn控制,而用drupal开发很多逻辑都是直接储存在drupal的数据库,出了问题根本不知道是哪出了问题,是谁出了问题。

  3、性能问题,不多说了,垃圾的html代码,加垃圾的view的逻辑, 加上复杂的传值过程,性能要好就真是见鬼了。

  4、中文问题, 很多内置对英文的处理,例如截取,断句,等等都是很好功能,但是对于中文都成了bug。(那个法国人正在开发drupal7的适合中文的模块)

  5、文章分页功能,都需要自己开发,很多bug。再加上多人开发问题,出了问题不知道问题在哪,如何解决。

  6、点击链接新开窗口打开,view中没有这个功能,真的,真的没有,目前我们用js实现的。

  7、js浏览器IE下兼容性问题,drupal会把js都整合到一起,无解,好了ie坏了firefox。

  8、cck问题, cck也是drupal重要部分,但是就连2级联动这种功能都没有,现在国内哪个cms和论坛没有类似cck建字段的功能。 最基本的功能都要自己开发,而且关键是自己开发很危险。说不定改了什么drupal核心的东西系统就崩溃了。

  9、批量上传图片问题,很多插件看似没有问题,但是不支持中文文件名,而且我们图片的数量级是15000张,数量级一多,一大堆问题。

4、最最重要的问题:drupal非常不稳定,或者drupal没有人能控制得了,现在drupal给我的感觉越来越像终结者里的天网。我们有开发drupal的专家,都控制不了。 举例说明几个问题:

  1、内存泄露问题,在开发的时候我们曾经每5分钟重启一次服务器,不重启过一段时间服务器远程都连不上了,只能手动去按服务器上的按钮重启。

  2、有时候只改css的文件的时候样式都改不过来,即使已经清楚了所有服务器的缓存,drupal的缓存,和浏览器的缓存,

  3、drupal自己把数据库回档了2次,本来我们都已经改好了功能,但却回档到某个版本,因为都是纯在在drupal的数据库里,根本无法找到问题所在,只好重做一遍。 而另一次是在切换域名的时候,也是数据丢失。 (drupal有自我修复功能?)

  4、drupal 在我们切换域名的时候,强制把mysql服务器关闭了,不知道为什么,我们查看了mysql的日志,也不知道什么问题,很灵异。

  5、虽然有比较好的缓存系统,但只对访客有效,对于注册用户来说居然毫无作用,其中还有很多很多问题, 我只能想起什么写什么了, 总之 drupal是程序员的恶梦, 是项目管理的恶梦,我们无法控制项目,是drupal在控制我们。不知道什么时候出问题,不知道问题出在哪,不知道如何解决,都是走一步看一步。及时备份数据库吧。

  6、我非常同意我们开发经理的说的一句话,drupal只适合一个人开发,(我们那个德国专家说的是一个viewer对应一个htmler,2个人开发)

那么我在想,drupal的定位是什么,如果是定位于类似supersite,织梦,这种不懂编程也能快速建站用的人,drupal显然不适合, 那么给程序员的用的,把程序员强制了变成了一个viewer,终结了程序员发展,也不适合,开发大型的商业网站,不稳定,不适合多人协作,也不适合,那么drupal到底适合做什么呢? 所以我的结论就是drupal不适合中国。真的不适合。

最新评论:

no.14229 yunke 183.37.58.108 2018-05-27 08:00

主要原因还是楼主对Drupal一知半解,视图只是Drupal的一个模块而已,如果不方便你可以直接使用更底层的数据库组件,Drupal可以精确控制到页面任何位置,只是需要你多学习,强大必定伴随着系统化,细节会很多,如同单反一定会比傻瓜相机控制选项多,需要你去了解

no.14107 support 5.188.211.35 2018-05-12 21:44

YiqSJy https://www.genericpharmacydrug.com

no.10126 debe5b16 188.143.234.155 2016-06-08 12:43

Your articles are for when it abltsuoely, positively, needs to be understood overnight.

no.8973 319189317 116.228.142.230 2016-05-04 14:09

對對滴

no.4267 123 180.168.223.6 2014-07-29 12:34

作为一个切实的drupal的使用者表示,以上问题都是可解决的,drupal形象地讲是数据库与数据调用的组合。任何想要实现的功能都可以以此实现。调试css我们可以在多次实验中发现html代码中class,id等规律可循性,每一个域都有多个class,id定义,以实现单一或多个的更改。php上我大多会更具自己的需求创建修改。drupal是由核心,主题,模块组成不是仅仅只有view一个东西,整个drupal的学习开发在不熟练之前都是缓慢苦涩的。我也遇到不少的问题,像你一样,毕竟drupal不是我们自己开发的,有待学习。目前我市一个人进行开发,个人认为,不去深究,问题永远不会被解决,这是一个公司技术缺乏的直接体现。

no.4255 loveavsc 203.117.101.242 2014-07-08 16:20

很简单,不要用CCK和view,你会发现其实做什么都还比较简单

no.4252 zxfyh7698 117.22.78.53 2014-07-04 17:51

Joyful to become here

no.4198 drupal 113.91.135.240 2014-05-13 20:08

哈哈,真是一派胡言

no.3783 2311741301 219.145.26.62 2013-10-22 10:30

Drupal是一套开源系统,全球数以万计的WEB开发专家都在为Drupal技术社区贡献代码。因此,Drupal的代码在安全性、健壮性上具有世界最高水平。这也是美国白宫、美国商务部、法国政府、纽约时报、SONY等著名政府和机构纷纷采用Drupal建设网站的最重要的原因。

no.3782 2311741301 219.145.26.62 2013-10-22 10:29

Drupal是一套开源系统,全球数以万计的WEB开发专家都在为Drupal技术社区贡献代码。因此,Drupal的代码在安全性、健壮性上具有世界最高水平。这也是美国白宫、美国商务部、法国政府、纽约时报、SONY等著名政府和机构纷纷采用Drupal建设网站的最重要的原因。 为什么我查到的是这样的?

no.3681 jyook 219.137.8.97 2013-08-22 06:19

刚看完文章,其实我觉得并没什么的。。。 因为你自己细心想想,假如你再开发一个系统级的产品 你考虑的是全面。。。 或许你再做某个功能的时候 只需要某部分的代码时候,那么对于你来说。我要它 但是对于系统来说,它写出来的是全部? why?因为系统是死的,人是活的。。。 别人开发这套系统就是希望他是一个系统级的产品 所以便有它的独立语言。。。 希望你能理解下开发者的追求。。。 其实并不需要那么自暴自弃。。。感觉别人的东西不好就自己从0开始写咯。。。最直接了!

no.3318 ishareu 113.106.103.130 2013-02-15 17:15

drupal能承受100万级的node,多用用feature或许有帮助

no.2927 xwuxin 124.193.126.162 2012-09-12 02:16

它是个CMS框架,相对于纯的mvc框架来说本身就复杂,如果它相对于轻量的mvc框架(比如CI)并不能减轻工作量,而且也不够灵活,那么为什么要用它呢,我个人一直觉得drupal只适合学习,至少我目前接触的大用户项目都没用drupal,当用户量暴增时,这个框架是否能快速适应和演进还是个大问题。
fangzi 2012-09-12 06:54

在理,绝对专家。

no.2851 07258467 222.90.141.47 2012-07-25 10:32

最近也在用drupal做一个房产中介服务的网站,感觉用drupal太难了实现自己的想要的功能 了,现在感觉最大的麻烦就是在后期的页面程现上,有很多地方的css根本实现不了。而且用cck开的话要产生很数据库表。。。views生成的查询语句很复杂而且效率不是很高。

no.2477 icac119 222.66.163.194 2012-02-09 10:03

哈哈,本身很简单的站还不如自己写来得实在。

no.2450 35984040 111.172.188.244 2012-01-14 21:21

国外的CMS的流程和国内的是有点不一样,最近做一个网站,用的joomla,也是做的头疼

no.2445 rogical 222.126.165.114 2012-01-12 13:48

至于开发成本,其他一些难点,都能解决,为何付出要多一点,缘于drupal这个开源免费cms的定位在非初级开发者,做简单站没优势,做复杂站才有力。 各种技术,实时应用,移动互联网,微博等等技术,都能找到在drupal中的实现,是的,它是一个操作系统。
fangzi 2012-01-12 22:40

那你见过哪个移动互联网应用和微博是用drupal开发的?为什么要把简单的事情搞得如此复杂?一套微博应用是可以用一个PHP框架可以解决的?我想牵涉到的层面恐怕不仅限于PHP?

no.2444 rogical 222.126.165.114 2012-01-12 13:46

大部分问题 对中级drupal开发者来说不是问题, 其中协作开发,项目管理,版本迭代是drupal目前最尖锐的问题,这在D8中已经重点提出了;

no.2443 rogical 222.126.165.114 2012-01-12 13:35

6、点击链接新开窗口打开,view中没有这个功能,真的,真的没有, -- 这个真的有, rewrite
fangzi 2012-01-12 22:42

只能说drupal太过于理论和教条化,作为PHP框架就应该做好框架该干的事情!

no.2425 tudousi001 27.26.95.21 2011-12-30 21:47

楼主,在搜索用drupal做网站的时候找到你的文章。我现在的网站呢,是用drupal做的,但是现在想润色。 不知道楼主是否愿意帮忙?当然,不会是无酬的。 如果楼主有兴趣,可以先看看网站:www.avanix.hk 非常感谢!
fangzi 2012-01-12 22:42

非常感谢,谢绝!

发表评论:

邮箱: