我们可以使用 Drupal 作为更大应用程序的框架吗?是否适合在其框架内开发大型应用程序,或者是否有任何限制?
我想在我的应用程序中使用 Drupal 作为框架。这值得吗?
最佳答案
如果您正在寻找 发展 -framework,Drupal 可能不是正确的选择。如果您正在寻找构建网站的套件,Drupal 可能是正确的工具。
人们常说 Drupal 是一个 CMF,其中 F 代表 Framework,但实际上,Drupal 只是一个灵活的 CMS。
在高层次上,Web 应用程序框架分为两类:MVC 和 CMS。 Model View Controller 是大多数人所说的框架。 CMS 只是一个具有应用程序开发能力的灵活 CMS。
在实践中,Drupal 缺乏的是:
从我 10 年的 Drupal 经验中可以看出,其中许多不足是延迟和预算下滑的主要原因。在我参与的大多数项目中,无主见的行为部分被证明是最讨厌的部分。明显的简单功能或想法被证明占据了整个预算的大部分;微小的细节会消耗开发周;最后的 20% 不仅需要 80% 的努力,有时还需要 300%。
除此之外,Drupal 不遵循 OO 模式,这(根据普遍共识)是一件坏事。没有继承,没有 DRY 实践,没有对象关系映射器*),也没有单元测试实践。**)。
这听起来可能都是负面的,但实际上,尽管存在所有这些“缺点”,人们还是设法构建了不错的 Drupalsite。那是因为他们主要遵循 Drupal 的默认设置(尽可能标准,需要更改的插件,没有其他选项时的自定义开发)。
*)
事实上有;在 Drupal 7 中,引入了 PDO,但还没有(还?)用作 ORM。**)
事实上:所有的核心和许多贡献都有测试,但这些是集成测试和罕见的单元测试。集成测试(DrupalWebTest)为每个测试安装一个干净的 Drupal-codebase+database。您的平均核心测试套件运行时间超过 8 小时也不异常(exception)。 TDD 根本(还)不可能。编辑 阅读您的示例:Drupal 在“表单向导”领域尤其糟糕,尽管它在 Drupal 7 中有所改进。Drupal 中另一个值得注意的不足是适当的、可编程的工作流系统。有几个模块可以增强或替换核心中的简单工作流系统,但对它们进行编程并不容易,也不高效(开发工作量方面)。 听起来你想要的主要功能是在 Drupal 中最不发达的领域中
关于Drupal 作为框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6648528/