3

気象会社の Web 開発者としての仕事中に、私たちは同じタスクに何度も直面しています。どこか (FTP/Web/ディレクトリ/メール) からいくつかのファイルを取得し、含まれているデータをデータベースにインポートします。

もちろん、ファイル形式は決して同じではありません。データベースは常に異なって設計されており、無数の特殊なケースを処理する必要があります。

だから今、私はまさにこの種の作業のためのインポートフレームワークを計画しています. 私たちは経験豊富な PHP 開発者であり、現在のスクリプトは PHP または Perl のいずれかであるため、スクリプト言語として PHP を使い続けることにします。

  • データ ゲッターは、ソースからファイルを取得して開き、内容を文字列変数に格納します。(心配しないでください。PHP は十分なメモリを取得します。)
  • データ ハンドラーは、文字列をある種の配列に変換する複雑な作業を行います。
  • 配列はデータベースに保存されるか、新しいファイルに書き込まれます。

この機能に加えて、いくつかの一般的なエラー処理、ログの書き込み、および電子メールの報告があります。

アイデアは、クラスのコレクションを使用することです (いくつかの getter クラス、多くの特殊なハンドラー、いくつかのライター クラス)。

私の質問:これらのクラスを作業スクリプトで実際に整理するにはどうすればよいですか? 解釈され、それに応じてクラスが呼び出されるある種のメタ言語を発明しますか? それとも、これらのクラスが実装しなければならないいくつかの単純なインターフェースを提供するだけで、私のユーザー (私が言ったように: 経験豊富な PHP 開発者) は、これらのクラスをロードする小さな PHP スクリプトを作成しますか?

2 番目のバージョンは、ほぼ確実に最大の柔軟性と拡張性を提供します。

そのような取り組みに関して他に何か考えはありますか。

4

3 に答える 3

4

データ変換サービス(DTS)から概念を借りることをお勧めします。データソースとデータシンク、インポートタスク、変換タスクなどがあります。

于 2009-02-09T09:49:52.513 に答える
3

インポートおよびエクスポートする必要がある数十の異なる外部データ形式の同様の環境で作業する場合、少なくともデータ形式を統一するように試みることをお勧めします。社外の他のユーザーがデータを当社の形式に変換するのに役立つツールを開発することで、ある程度の成功を収めました。ソースコードも無料で提供しました。

私たちのツールを使用してデータを変換している他の人もいます。フォーマットを変更すると、変換ツールを変更するのは彼らです。私たちにとって頭痛の原因の1つが少なくなります。

あるケースでは、別の会社が、システムが社内で使用するファイル形式に切り替えることさえありました。確かに、これは 1 つのケースにすぎませんが、これは長い道のりの第一歩だと考えています ;-)

于 2009-02-09T10:30:54.567 に答える
0

ここで標準の Web サービスを定義できない理由はありますか? その後、データを標準形式で提供し、エラーが発生した場合は SOAP エラー (入力ドキュメントのフィールドによって入力される可能性があります) を返すことができます。

Pavel の提案よりも制限される可能性があります (または、より多くの事前設計が必要になります) が、検討する価値があるかもしれません。

于 2009-02-09T10:34:54.120 に答える