争论的焦点是我需要一个PHP Framework / Drupal,它可以灵活地为一个潜在的大型应用程序(web和api)添加自定义功能。
然而,有了像Kohana这样的框架,我看到自己用简单的东西来管理和重新发明轮子,比如帐户管理和cms的东西。帐户管理和快速数据收集,如快速创建表单,在Kohana中很乏味,但在Drupal中显得简单易行。另一方面,基于我有限的Drupal经验,我怀疑构建快速自定义“功能”并允许用户创建“组”并在这些组中管理自己的角色是Drupal可以轻松完成的事情。
为简化起见,Drupal能够真正实现Web应用程序;应用程序是服务的位置,并为每个用户提供自定义结果?它是否可以为用户提供类似仪表板的界面来更改其设置或首选项?它可以汇总来自特定用户的数据,以便为其他用户提供更好的结果/信息吗?
如果是这样,请指出一些知识: - )
答案 0 :(得分:5)
我马上就承认我是Drupal的忠实粉丝而我从未使用过Kohana,因此这篇文章将是片面的。
在我工作的公司,他们使用Drupal或Zend Framework几乎所有项目(Drupal占大多数)。许多面向ZF的人不喜欢Drupal,因为它的结构远离面向对象的ZF-stuff,而Drupal“只是一个CMS”。正如我所看到的,Drupal更像是一个框架,而不仅仅是一个CMS,最好的部分是它非常灵活:一切皆有可能。
是的,确实存在一个适用于所有事物的模块。更具体一点:
另一方面,基于我有限的Drupal经验,我怀疑构建快速自定义>“功能”并允许用户创建“组”并在>这些组中管理自己的角色是Drupal可以轻松完成的事情
我只能用快速自定义功能来猜测你的意思,但是用你自己的模块很容易扩展Drupal。大多数功能都可用作(免费,社区贡献)模块,并且可以使用“views”和“cck”模块轻松创建许多高级外观功能。 http://drupal.org/project/cck http://drupal.org/project/views
创建群组:
“organic_groups”(http://drupal.org/project/og)
“og_user_roles”(http://drupal.org/project/og_user_roles)
这些模块是您创建具有组特定角色(以及具有特定权限的角色)的组所需要的。除了使用“og_user_roles”之外,可能还有其他方法,但我正在做广告,因为几年前我已经为它制作了一些补丁。问题通常是选择太多。
如果您想扩展组特定选项,您可以编写自己的模块,但很可能您不需要,因为已经有一个模块。例如,至少有120个模块以某种方式与“organic_groups”模块集成: http://drupal.org/taxonomy/term/90?page=19
为简化起见,Drupal能够真正实现Web应用程序;应用程序是一个>服务,并为每个用户提供自定义结果?它是否可以为用户提供类似仪表板的界面以更改其设置或首选项?它可以汇总来自>特定用户的数据,以便为其他用户提供更好的结果/信息吗?
简而言之,是的。有很多方法可以实现您描述的内容。但可能他们至少会涉及到极好的“观点” - 模块。我认为视图是任何人的某种终极抽象SQL层和UI。还有300多个模块以某种方式与Views ...(http://drupal.org/taxonomy/term/89?page=55)
集成这听起来Drupal是关于模块的......我知道我的一些同事甚至不喜欢它,因为你从来没有编写有趣的东西,因为它已经完成了。至少你可以查看模块代码并从中学习。或者嘲笑它,周围还有许多编程错误的模块。
当你进入编码模块时,你可能需要很多时间来习惯Drupal API,Forms API,模块挂钩,Theme覆盖系统以及来自contrib模块的无限选项。但值得这么麻烦。
我觉得这个网站非常有用,可以找到满足某些特定需求的模块。该网站显示与Drupal.org相同的模块信息,但也显示用户反馈/评级,以找到最佳选项: http://drupalmodules.com/
如果不清楚,我的回答将是Drupal:)
PS:D7应该很快出来。有些人可能会等待而不是从D6开始。在D5期间,由于缺少模块,人们会在升级到D6之前等待很长时间。我相信D7最重要的模块将非常快速地用于D7。目前的一些研究(04.12.2010):大约190个模块承诺在D7发布当天有一个Drupal 7版本: http://drupal.org/project/modules?solrsort=sort_title%20asc&text=d7cx&display=table
D7已经有大约130个模块可用(大部分都包含在上一个链接中): http://drupal.org/project/modules?filters=drupal_core:103&solrsort=sort_title%20asc&text=d7cx&display=table
编辑:作为一个新手,我只允许发布一个链接,所以,我从drupal.org-links 中删除了http://答案 1 :(得分:5)
我和Drupal以及Kohana合作过。
在我的见解中,这实际上取决于你想做什么。如果您打算制作一个需要增长很多并且应该灵活增长的Web应用程序,那么我建议使用Kohana。 Kohana旨在保持您的代码库清洁并支持DRY(不要重复自己)。虽然它可能没有Drupal那么多的模块,但它确实有一些Auth和ACL模块。
如果你想快速完成并且你不介意让你的应用程序脱离他们的模块Drupal将快速完成你的工作。但请记住,当您要扩展时,您很可能会遇到来自您不知道的模块的问题。你也需要一点灵活性。
最终这是你的选择。但是如果您打算从头开始编写它,我建议使用MVC框架。
答案 2 :(得分:1)
没有不可能完成的事情。问题是你想与别人的代码合作,并试图找出如何挖掘内部和扩展,以便它可以满足您的需求,或者你想要使用像Kohana或CodeIgniter(我个人最喜欢的)和驱动器的轻型框架你可能需要“发明”一些车轮。
继续研究哪些插件适合您的选择框架,因为有很多框架提供了非常好的解决方案,可以为您提供这些轮子。
在我个人看来,你花在学习Drupal上的时间将相当于你创建基本CMS功能所需的时间,但是你将使用处理你无法控制的东西的神经就像核心的Drupal代码一样有利于框架的尺度。
答案 3 :(得分:1)
关于Drupal的有趣的东西是社区开玩笑地称之为规则#35:它有一个模块。除非你想做一些非常棘手的事情,否则你经常会发现这个功能已经实现了,你只需要配置它。
答案 4 :(得分:1)
我是Drupal(7.12)和他的新手。 Kohana(3.2.0)......到目前为止,我的经验是Kohana的文档SUCKS(或至少,我所见过的)。如果他们的网站和/或论坛是用Kohana编写的,那也很糟糕(slooooow,重叠的字段等)。而对于Drupal来说,它一直很干净,到目前为止,非常有效(至今我能说的最好)。
我想我想知道迄今为止的评论是否都集中在Drupal 6.x并且还没有考虑到Drupal最近的创新。有什么想法/意见吗?感谢。
答案 5 :(得分:0)
作为一名新手Web开发人员,我可以告诉您,您需要非常严格地分析Web应用程序的用例。如果您能够覆盖至少75%的用例,那么这是一个良好的开端。
完成后,您需要确定Drupal / Joomla / CMS(x)是否会为您提供所有这些以及另一个潜在的未知5-10%特征蠕变。如果是这样,你可能最好不要使用Drupal等。
另外,我认为CodeIgniter或Symfony是很好的PHP框架。两者都提供了扎实的教程,视频和其他内容,以及一个有用的社区。 Kohana,我正在研究,我认为你应该深入了解如果你真的了解PHP及其缺陷,并意识到速度将是一个关键因素。这些是KO3带来的两大优势,你应该需要来使用它。
希望这有帮助。