PHP5憎恶到Drupal的过渡计划


8

背景

一年后,我的客户将要把相对复杂的Intranet门户服务(计划,实际跟踪和报告等)移植到Drupal,因为总公司这样说。做出很少的努力来确定这是否是正确的技术选择,并且这超出了我的客户甚至老板的控制范围。

当前的门户网站正在重构中,令人憎恶,我认为最经济高效的计划将是通过Doctrine 2引入域模型层,并将99.9%的所有业务和输入验证逻辑放入模型中,将其删除,直到它是骨骼视图和身份验证逻辑层。

对于那里的任何Drupal专家来说,这似乎都是可行的方法吗?Doctrine2可以与Drupal配合使用,还是Drupal更高级别的逻辑需要更紧密地集成到数据?

Answers:


9

我们已经做了数据,我们已连接外部系统Drupal的几个网站已经被关在外面的系统。这就是我大部分时间的工作。

当我们这样做时,我们通常创建一个内容类型以“存根”另一个系统中的内容。内容类型仅包含节点标题和另一个系统中唯一标识符的CCK字段。随之而来的还有很多hook_nodeapi函数。例如,该load挂钩将调出远程系统,并将数据添加到该节点。您还需要设计一种将外部数据纳入搜索结果的方法。有几种方法可以解决,但是这些方法太冗长了,无法进入本文。

虽然有一些缺点,但我们发现它可以很好地工作,并允许使用普通的Drupal内容,例如注释,标签等。


如果必须在外部,这是一个好方法。
杰里米·法兰西

4

给定时间线,唯一明智的做法是在Drupal 7中进行构建。Drupal 7最突出的功能之一是实体,DBNTG和字段。

快速概述

  • 实体是定义数据结构的一种方式。Drupal内置的实体示例包括节点(主要内容),用户,分类术语。
  • 字段是可以附加到实体的实体,实体也保存数据。使用字段的优点是只有一个地方可以处理数据,并且可以通过多种方式扩展它们。字段的示例可以是文件附件,也可以是对另一个实体的引用。
  • DBTNG(下一代数据库)是Drupal社区所代号的新数据库抽象层。在此之前,我们曾经使用占位符进行查询(仍受支持),但是现在大多数查询都是使用类构建的。这样做的原因还在于,字段会根据设置创建其数据库表。即使使用不同的设置创建了字段,这也有助于创建有效的代码。

这只是其中的一些功能,但这意味着,除非您想创建Drupal可憎的东西,否则您应该开始考虑Drupal的工作方式并使用它,而不是尝试使Drupal并非以其原本设计的方式工作。

由于Drupal是PHP,因此您可以创建自定义模块并使用Doctrine2进行所需的操作。但是我的猜测是,您最终将获得一个与大多数Drupal网站几乎没有共同点的网站。


不幸的是,我离开客户约有一个月的时间,所以之后他们就自己一个人了。可憎的负载/使用情况相当可观,我们在讲话时添加了新的“功能”。整个情况都是一团糟,我在某种程度上未能引导到更好的方向。为了我自己的辩护,在我被雇用帮助保释水的一周前,它就上线了。
戴维(David

4

这是一个相当广泛的问题,因此我将给出一个较高级别的答案,如果您还有其他更具体的问题,请单独回答。

我建议您尽可能地绘制当前站点的结构。它做什么事情,那里有什么工作流程。内容是什么,用户是什么。

内容类型是分割内容的便捷方法。甚至可憎的东西也都具有映射到URL的类型(我希望如此)。

确定内容类型后,您可以查看将内容迁移到新站点的过程。然后,您可以查看工作流,时间表,用户等。

我希望搬家批发。由多个系统管理内容是一项巨大的技术难题。并加倍您的维护工作量。

我要说的一件事是,可能值得雇用某个人来做。已经进行了一些非常成功的具有大量数据集的Drupal迁移。但是,如果您没有Drupal的经验,则可能会犯几个错误的步骤,并花费很多时间。(我个人可以推荐cyrve,我目前没有与他们的隶属关系)


我将把Cyrve传递给我的客户;因为它没有人推动我的客户部门或邻近的部门推动Drupal在Drupal方面拥有任何专业知识,所以看到这种情况在一年后的发展应该是很有趣的。
戴维(David
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.