Frage

Ich baue eine Bibliothek, um den Google Analytics Data Export-API zugreifen. Alle Daten, die Bibliothek Zugriffen ist in Atom-Format und nutzt zahlreiche verschiedene Namensräume im gesamten Gebäude. Meine Experimente mit der API verwendet haben SimpleXML für bisher Parsen, zumal alles, was ich habe, ist Zugriff auf die in dem Futter gehaltenen Daten gemacht habe.

Jetzt komme ich um eine Bibliothek schreiben ich frage mich, ob voraus mit SimpleXML Schmieden ausreichend sein wird, oder ob die erweiterte Funktionalität des DOM-Modul in PHP würde in Zukunft von Nutzen sein. Ich habe nicht viel Code für diesen Teil der Bibliothek geschrieben noch so dass die Wahl noch offen ist.

Ich habe gelesen, dass das PHP-Modul DOM eine bessere Wahl sein, wenn Sie benötigen einen XML-DOM on the fly erstellen oder eine vorhandene ändern, aber ich bin nicht ganz sicher, würde ich diese Funktionalität müssen ohnehin auf Grund der Natur der API (keine Daten an den Server, zum Beispiel drückt). SimpleXML ist sicherlich einfacher zu bedienen und ich habe Menschen gesehen, sagen, dass für Nur-Lese-Situationen ist es alles, was Sie brauchen.

Im Wesentlichen ist die Frage, was würden Sie nutzen? Kompatibilität wird kein Problem, da die Server-Konfiguration wird die Anforderungen der Anwendung entsprechen. Lohnt es sich, den Aufbau der Bibliothek mit PHP DOM im Sinn oder sollte ich bleibe mit SimpleXML für jetzt?

Update: Hier sind zwei Beispiele für die Art von Futtermitteln werde ich mit beschäftigen werden:

  1. Konto Feed
  2. Daten Feed
War es hilfreich?

Lösung

Mein Nehmen auf sie:

SimpleXML Profis:

  • Einfache
  • Halb intuitiver nicht ausführlicher Code
  • Sehr geeignet zum Lesen / Parsen von Dokumenten

SimpleXML Nachteile:

  • Terrible zum Erzeugen von XML.
  • mangelt an Flexibilität und Leistung

DOM-Profis:

  • Enorm kraftvoll
  • Sehr geeignet zum Erzeugen von Dokumenten
  • Werden vertraut sein, wenn Sie einen anderen DOM-Scripting getan haben (zB: in Javascript)

DOM Nachteile:

  • Ausführlich
  • Manchmal unnötig kompliziert.

Ich persönlich würde auf DOM bleiben den ganzen Weg. Es werden Sie überall Sie gehen müssen. Die Dokumentation ist mehr als ausreichend, und obwohl die Hände wund von allen der Typisierung bekommen könnten, werden Sie nie frustriert denken bekommen „warum kann es nicht nur tun, das ??“

Wenn alles, was Sie tun müssen, ist ein Dokument zu lesen, oder einige sehr grundlegend Bearbeitungs tun, dann wahrscheinlich mit SimpleXML gehen. Für mich jedoch bin ich zu den DOM-Bibliotheken verwendet, so dass ich das einfach überall verwenden und es ist toll.

Andere Tipps

SimpleXML ist durchaus in der Lage mit Namensräumen umzugehen. In Ihrem Fall müssen Sie nur eine Iteration durch die Einträge, die getNameSpaces verwenden und ein Argument für die children Methode Anfrage Kinder mit einem bestimmten Namensraum übergeben.

Das heißt, können Sie DOM verwenden, wenn Sie den Code schreiben, 3x wollen.

Nun, wenn Sie das Rad neu erfinden müssen, würde ich wahrscheinlich SimpleXML verwenden ... Oder Sie könnten nur die Zend_Gdata (wenn das, was Sie brauchen, da drin ist) oder erweitern Zend_Feed_Atom wenn es nicht. Entweder Option sollte wahrscheinlich die Hälfte der Menge an Arbeit, die Sie tun müssen, um:)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top