Quelle est la meilleure pratique pour l'élaboration d'un cadre d'importation de données PHP?

StackOverflow https://stackoverflow.com/questions/527540

  •  22-08-2019
  •  | 
  •  

Question

Au cours de notre travail en tant que développeur web pour une entreprise météorologique, nous sommes confrontés à la même tâche encore et encore: Obtenir des fichiers de quelque part (FTP / Web / répertoire / mail) et importer les données contenues dans une base de données <. / p>

Bien sûr, le format de fichier est jamais le même, les bases de données sont toujours conçues différemment, d'innombrables cas particuliers doivent être manipulés, etc, etc.

Alors maintenant, je prévois un cadre d'importation pour exactement ce genre de travail. Puisque nous sommes tous les développeurs PHP expérimentés et les scripts en cours sont soit PHP ou Perl, nous collons avec PHP comme langage de script.

  • Un getter de données va récupérer le fichier à partir de la source, ouvrir et stocker le contenu dans une variable de chaîne. (Ne vous inquiétez pas, PHP obtenir assez de mémoire de nous.)
  • Le gestionnaire de données fera le travail compliqué à transformer la chaîne en une sorte de tableau.
  • Le tableau sera enregistré dans la base de données ou écrites dans un nouveau fichier ou tout ce que nous sommes censés faire.

Avec cette fonctionnalité, il y aura une gestion des erreurs communes, journal écrit et des rapports électroniques.

L'idée est d'utiliser une collection de classes (getter Certains classes, beaucoup de gestionnaires spécialisés, certaines classes d'auteur).

Ma question: Comment organiser pratiquement ces classes dans un script de travail? Est-ce que j'invente une sorte de métalangage qui seront interprétées et les classes sont appelées en conséquence? Ou tout simplement fournir des interfaces simples ces classes doivent mettre en œuvre et les mes utilisateurs (comme je l'ai dit: les développeurs PHP expérimentés)? Écriront petits scripts PHP chargement ces classes

La deuxième version offre presque certainement le plus grand flexiblity et l'extensibilité.

Avez-vous d'autres idées concernant une telle entreprise?

Était-ce utile?

La solution

Travailler dans un environnement similaire de dizaines de différents formats de données externes qui doivent être im- et exportés, je peux recommander au moins essayer et les amener à unifier les formats de données. Nous avons eu un certain succès en développant des outils qui aident les autres en dehors de notre entreprise pour transformer leurs données en notre format. Nous leur avons donné également le code source, gratuitement.

D'autres sont maintenant en train de transformer leurs données pour nous en utilisant nos outils, et si elles changent leur format, il est les qui change l'outil de transformation. L'une des causes d'un mal de tête moins pour nous.

Dans un cas, il conduit même à une autre société de passer au format de fichier nos systèmes utilisent en interne. Accordé, il n'y a qu'un seul cas, mais je considère qu'il est une première étape sur une longue route; -)

scroll top