开发PHP数据导入框架的最佳实践是什么?

时间:2009-02-09 09:31:41

标签: php frameworks import etl

在我们作为气象公司的Web开发人员工作期间,我们一遍又一遍地面对同样的任务:从某处获取一些文件(FTP / Web /目录/邮件)并将包含的数据导入数据库。 / p>

当然,文件格式永远不会相同,数据库的设计总是不同的,必须处理无数的特殊情况等等。

所以现在我正在为这种工作计划一个导入框架。由于我们都是经验丰富的PHP开发人员,当前的脚本是PHP或Perl,因此我们将坚持使用PHP作为脚本语言。

  • 数据获取器将从源获取文件,打开它并将内容存储到字符串变量中。 (别担心,PHP会从我们那里获得足够的内存。)
  • 数据处理程序将执行复杂的工作,将字符串转换为某种数组。
  • 数组将保存到数据库中或写入新文件或我们应该用它做什么。

除此功能外,还会有一些常见的错误处理,日志编写和电子邮件报告。

这个想法是使用一组类(一些getter-classes,许多专门的处理程序,一些writer类)。

我的问题:如何在工作脚本中实际组织这些类?我是否发明了某种将被解释的元语言并且相应地调用了这些类?或者只是提供一些这些类必须实现的简单接口,我的用户(比如我说过:经验丰富的PHP开发人员)会编写加载这些类的小PHP脚本吗?

第二个版本几乎可以肯定提供最大的灵活性和可扩展性。

你对这项事业还有其他想法吗?

3 个答案:

答案 0 :(得分:4)

我建议借用Data Transformation Services(DTS)中的概念。您可以拥有数据源和数据接收器,导入任务,转换任务等。

答案 1 :(得分:3)

在需要导入和导出的数十种不同外部数据格式的类似环境中工作,我建议至少尝试并让他们统一数据格式。我们通过开发工具帮助我们公司以外的其他人将数据转换为我们的格式,从而取得了一些成功。我们还免费为他们提供了源代码。

其他一些人正在使用我们的工具为我们转换他们的数据,如果他们改变了他们的格式,那么他们就会改变转换工具。我们头痛的原因之一就少了。

在一个案例中,它甚至导致另一家公司切换到我们的系统内部使用的文件格式。当然,这只是一个案例,但我认为这是漫长道路上的第一步; - )

答案 2 :(得分:0)

为什么定义标准Web服务不适用于此?然后,您可以以标准格式提供数据,如果出现故障,则返回SOAP错误(可能由输入文档中的字段填充)。

它可能比Pavel的建议更有限(或者需要更多的前期设计),但可能值得考虑。

相关问题