Julius: Bitte Dokumentation bewerten

Beitrag lesen

Hallo chorn, @Linuchs

Auf mich wirkt das eher unbeholfen. Da ist halt viel "Geschwafel", zumindest für jemanden der schonmal mit APIs gearbeitet hat.

Also vielleicht lieber eine Kurz-Version mit Beispiel und dazugehöriger Ausgabe und dann eine ausführlichere Version für die, die es ausführlicher haben wollen.

Ausserdem verschmutzen die Funktionen meinen globale Scope.

Dagegen dürfte Objektorientierung helfen, beispielsweise so:

// Datei mit der passenden includen:
require('RemsoKalender.php');

$kalender = new RemsoKalender();
$kalender->loadFromURL('http://example.org');
$kalender->setTemplate('<tr><td>[titel]</td><td>[datum]</td></tr>');
while($kalender->hasEntries())
{
  echo $kalender->render();
}

Vielleicht solltest du die Daten (auch) als JSON übertragen, das ist besser standardisiert, verbereiteter und vor allem leichter zu parsen als CSV. In PHP gibt es auch gleich passende Funktionen.

Außerdem wäre eine Flexibilisierung schön, wenn deine Funktionen beispielsweise auch optional ein Array zurückgeben können. Beispielsweise könnte jemand auf seine andere Template-Engine (z. b. Mustache oder Twig) als auf deine setzen wollen.

Außerdem solltest du vielleicht einen Cache implementieren, damit nicht bei jedem Skript-Aufruf die Daten von dir geholt werden, sondern vielleicht für 5 - 10 Minuten auf dem Server des Nutzers deines Skripts zwischengespeichert wird. Das senkt die Belastung deines Servers und erhöht die durchschnittliche Auslieferungsgeschwindigkeit der Seite, da PHP nicht immer erst auf die Daten von deinem Server warten muss. Dann sollte die Erneuerung des Chaches vielleicht auch so gehandhabt werden, dass bei einer fälligen Erneuerung erst die Daten von deinem Server geholt werden und erst bei erfolgreichem Download der Cache überschrieben wird. So sorgst du dafür, dass die von anderen Seiten eingebundenen Kalender auch dann noch funktionieren, wenn deine Seite mal kurz nicht funktionieren sollte. Dass die Daten, die der Nutzer in dem Fall zu Gesicht bekommt, dann ein paar Minuten älter sind, ist besser als eine Fehlermeldung.

PHP sollte auch immer mit <?php explizit eingeläutet werden, sonst gibts Kompatibilitätsprobleme.

Das <? verträgt sich beispielsweise nicht mit XML und PHP parallel. Außerdem kann es sein, dass auf die Servern der Nutzer so konfiguriert wurden, dass PHP nicht auf <? reagiert.

Und wenn abstrahiert, dann echte Funktionen bereitstellen, mit echten Parametern, und nicht nur irgendwas das eine URL entgegennimmt.

@chorn Meinst du, dass das die Funktion einen Dateihandler oder direkt den Inhalt statt der URL entgegennehmen soll?

Gruß
Julius