Sven Rautenberg: POST an OData Service mit PHP Klasse

Beitrag lesen

Moin!

ich verwende die OData Klasse von M$ (http://odataphp.codeplex.com/) um mit PHP OData-Services abzufragen. Lesende Abfragen haben bisher gut funktioniert. Nun habe ich versucht Daten an den Service zu senden. In der Theorie sollte das auch recht leicht abgehen.

Ich hab mir den Code von dieser Seite mal kurz angeschaut.

ES GIBT ZUM GLÜCK WENIG CODE, DEN ICH SO EXTREM UNGERN NUTZEN WÜRDE, WIE DIESEN.

Das Copyright ist von 2010 - und ungefähr genau so lange hat auch niemand mehr an diesem Code gearbeitet (immerhin schon 5 Jahre!) und ihn auf das aktuelle Niveau moderner PHP5-Applikationen gehoben. Es wimmelt noch von Resten von PHP-4-Code in dieser Software!!!

Abgesehen davon kann man sie nicht mit Composer installieren und nutzen. Von meiner Warte aus kriegt dieses Paket ein dickes, fettes Daumen runter.

Leider kommt bei Ausführung von $proxy->SaveChanges(); immer ein Fehler:

Das ist einer der Nachteile, wenn man als Anbieter seine Software nicht pflegt: Irgendwann ist es halt kaputt.

Im Gegensatz zu dedlfix sehe ich diese Warnung als sehr deutliches Signal, von der weiteren Nutzung abzusehen. Es wird über kurz oder lang zu Inkompatibilitäten mit neuen PHP-Releases kommen.

Die Tatsache, dass man außer dieser Lib zu "OData" im PHP-Umfeld fast nichts findet (selbst die offiziell aussehende http://www.odata.org/libraries listet KEINE EINZIGE PHP-Library), deutet auch darauf hin, dass PHP-Entwickler diesen Standard als eher irrelevant einschätzen. Das ist natürlich Pech, wenn man einen entsprechenden Service konsumieren muss, aber angesichts dieser Situation von Software-Aktualität fühlt es sich für mich sowieso so an, als reite man da ein totes Pferd.

Diese Utility::WriteLine() wird über X-Zeilen angemeckert. Tatsächlich wird in SaveResult.php in vielen Zeilen die WriteLine() Methode aufgerufen. Keine Ahnung warum die Klasse an der Stelle rumzickt. Sie gilt eigentlich schon länger als stable. Die Dokumentation ist ja leider mehr als dürftig. Außer ein paar Blog-Posts oder Forumseinträge findet man hier nicht viel.

Debugging in offen vorliegendem Sourcecode ist ja kein Hexenwerk - den Bug könntest du fixen. Nützt nur leider niemandem: Dem Rest der Welt nicht, weil der davon nix hat, und euch nicht, weil ihr damit in die Pflege dieser Library einsteigt. Obwohl: Das seid ihr ohnehin schon, ihr habt das vermutlich nur noch nicht realisiert: Eine fünf Jahre alte PHP-Library erhält vom Hersteller keinen Support mehr, den müsst ihr ganz allein und eigenständig machen...

Hat jemand von Euch schonmal Erfahrungen  mit dieser OData-Klasse gemacht und kennt vielleicht diesen Fehler? Bzw. weiß einer vielleicht, ob es in der PHP Welt irgendwo ne gute Alternative im Bereich OData gibt? Bin für jeden Tipp offen.

Wir benötigen im Unternehmen OData für die Anbindung von mobilen Apps. Nachdem OData ja seit einiger Zeit von einigen marktführenden Unternehmen zum Industriestandard erhoben wurde, war ich doch einigermaßen erstaunt, dass das Angebot passender APIs in PHP für eine OData Implementierung doch recht spärlich ausfällt.

"Einige marktführende Unternehmen" => Microsoft.

Das erklärt auch, warum niemand aus der Open-Source-Welt für deren Spec Bibliotheken entwickeln will, und warum außer für MS- und generelles Enterprise-Zeugs (Java, .NET, C#) auf der OData-Seite keine Libs zu finden sind.

Wie gesagt: Wenn du gegen so einen Service entwickeln musst: Mein Beileid.

Wenn du hingegen der Service bist: Stattdessen Zend's Apigility angucken.

- Sven Rautenberg