Question

Je vais construire une bibliothèque pour accéder à l'API de données Google Analytics Export. Toutes les données des accès bibliothèque est au format Atom et utilise de nombreux espaces de noms différents tout au long. Mes expériences avec l'API ont utilisé SimpleXML pour analyser jusqu'à présent, d'autant plus que tout ce que je l'ai fait est d'accéder aux données contenues dans l'alimentation.

Maintenant, je viens d'écrire une bibliothèque, je me demande si l'avant avec SimpleXML sera suffisant ou si la fonctionnalité améliorée du module DOM en PHP serait bénéfique à l'avenir. Je ne l'ai pas encore écrit beaucoup de code pour cette partie de la bibliothèque, donc le choix est encore ouvert.

J'ai lu que le module DOM PHP peut être un meilleur choix si vous avez besoin de construire un DOM XML à la volée ou de modifier un existant, mais je ne suis pas tout à fait sûr que je aurais besoin que la fonctionnalité de toute façon en raison de la nature de l'API (pas de pousser les données sur le serveur, par exemple). SimpleXML est certainement plus facile à utiliser et j'ai vu des gens dire que pour des situations de lecture seule, il est tout ce que vous avez besoin.

la question est essentiellement, que voulez-vous utiliser? La compatibilité ne sera pas un problème car la configuration du serveur correspondent aux besoins de l'application. Est-il utile construire la bibliothèque PHP DOM à l'esprit ou devrais-je rester avec SimpleXML maintenant?

Mise à jour: Voici deux exemples du genre d'aliments que je vais traiter avec:

  1. compte alimentation
  2. données alimentation
Était-ce utile?

La solution

Mon avis sur la question:

pros SimpleXML:

  • simple
  • non bavard Code semi-intuitif
  • Idéal pour la lecture de documents / analyse syntaxique

contre SimpleXML:

  • Terrible pour XML de production.
  • Manquant de flexibilité et de puissance

pros DOM:

  • puissant Énormément
  • Idéal pour les documents de production
  • est familier si vous avez fait un autre script DOM (par exemple: en Javascript)

contre DOM:

  • verbeux
  • Parfois, inutilement compliqué.

Je personnellement coller à tout le chemin DOM. Il vous obtiendrez où vous devez aller. La documentation est plus que suffisant, et bien que vos mains pourraient obtenir mal de tout le frappe, vous ne serez jamais penser frustré « pourquoi ne peut le faire simplement ce ?? »

Si tout ce que vous devez faire est de lire un document, ou faire un peu de montage très basique, puis allez probablement avec SimpleXML. Pour moi, cependant, je suis habitué aux bibliothèques DOM, donc je viens d'utiliser que partout et il est grand.

Autres conseils

SimpleXML est parfaitement capable de traiter les espaces de noms. Dans votre cas, il vous suffit de itérer à travers les entrées, utilisez le getNameSpaces et passer un argument à la méthode children aux enfants de demande avec un certain espace de noms.

Cela dit, vous pouvez utiliser DOM si vous voulez écrire 3 fois le code.

Eh bien, si vous avez besoin de réinventer la roue, je ne serais probablement utiliser SimpleXML ... Ou vous pouvez simplement utiliser le Zend_Gdata (si ce que vous avez besoin est là-bas) ou étendre Zend_Feed_Atom si ce ne est pas. Chacune de ces options devrait probablement la moitié de la quantité de travail que vous devez faire:)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top