CardDAV-Server in PHP
Ich bin derzeit zu Graben um einen Weg zu bauen, eine CardDAV-server in PHP. Dies ist eine kleine Entwicklung, die hoffentlich erlauben, mein Unternehmen zu teilen, Kontakte aus/zu vielen Arten von Geräten, serviert von einem custom-backend/CRM.
Ich angefangen habe zu spielen, versuchen zu verstehen, das Protokoll, aber am Ende zweimal als verwirrt. Dann Las ich die IETF-Entwürfe fanden aber heraus, dass ich gar nicht verstehen die Grundlagen der WebDAV selbst.
In welcher Weise würden Sie empfehlen, dass ich das lernen über CardDAV, WebDAV und alles, was im Zusammenhang?
- Es ist ein knifflig-Protokoll. Aber Sie würde vielleicht versuchen, die BIRNE HTTP_WebDAV_Server oder die Horde-Implementierung (VFS) für heimlich in die übermittelten xmlish Zeug.
- Danke Mario, ich werde das prüfen!
- Woah! SaberDAV könnte genau das sein was ich suchte, ich guck hinein, spielen Sie herum für eine Weile und wenn ich es Schaffe zu schreiben, ein Modul, ich werde beitragen, zurück zu Ihrem Projekt, Evert. Danke!
- Aktualisiert link: sabre.io 😉
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin gespannt zu sehen, wenn ich kann helfen, zu beseitigen einige Verwirrung um webdav. Die meisten IETF-standards verwendet Sprache, die scheint sehr stumpf.
Begründung WebDAV
HTTP wurde entwickelt für den Abruf von web-Ressourcen oder soll ich sagen: Lesen. Es war nicht gedacht für die Erstellung einer web-Ressource.
Kurz, WebDAV bietet eine vollständige suite von remote-Zugriff auf Dokumente-Funktionen, einschließlich der file-storage, directory management, und-Unterstützung für kollaborative authoring.
Denke der Datei system
Den kürzesten Weg zum Verständnis von webdav ist, dass es ist ähnlichkeit in der Behandlung von web-Ressourcen wie Datei-system.
Wie Ordner, es gibt
collections
als spezielle web-Ressource, die mit anderen web-Ressourcen. Es erforderlich zu unterscheiden, dies als eine Besondere Ressource, da Fähigkeiten (Methoden gelten würde, sind für eine normale Ressource)So neue Methode war geboren -
mkcol
Genau wie
files have attributes
,web resources have meta-properties
welches einige details über die web-Ressource. Die web-Ressource der Inhalt selbst erbracht werden können wie bisher (HTTP schon übernimmt das für Sie).Kurz gesagt, Sie müssen auch
methods to enquire into meta-properties
-PROPFIND
und auch verändern zu können -PROPATCH
. Die XML-Nutzlasten waren dazu gedacht, Fragen und abrufen von diesen Eigenschaften.WebDAV-Ansatz zum speichern von Eigenschaften außerhalb der Datei Körper, abgefragt werden kann, ohne immer den gesamten Körper und aktualisiert, ohne änderung die Körper.
Einige Eigenschaften sind webdav-spezifisch. Sie entstanden aus dem Bedürfnis. Für ex:
Resourcetype Property
. Es wurde geschaffen, um sich zu erkundigen, wenn Sie unter besonderen Sammlung Ressource oder eine normale web-Ressource, die in einer Sammlung.Denken Sie daran, dass MAN (Wie HTTP), holt eine Ressource, LEGEN Sie eine Ressource ändert, und DELETE löscht eine Ressource.
Einschränkungen von HTTP
Verstehen, webdav, müssen Sie verstehen, die Beschränkungen von HTTP.
depth header
wurde so erstellt, dass Sie sagen könnte, wenn Sie arbeiten müssen, um auf alle Ressourcen.WebDAV-Ressource-Modell
Könnte man auch ausprobieren, DAViCal, CalDAV-und CardDAV-server, geschrieben in PHP mit Postgres backend. Ich finde es sehr zuverlässig, aber hüten Sie sich: die Entwicklung wurde gestoppt-zumindest vorübergehend. Auf der mailing-Liste gibt es einen patch, um DAViCAl kompatibel mit den neuesten Apple-Produkten (die kommen mit einer Menge bugs, die müssen umgangen werden).
Der code ist open-Source (nicht sicher, welche Lizenz gilt genau), aber wenn Sie wollen immer noch, selbst etwas zu bauen, können Sie einen Blick auf, wie DAViCal Griffe Cal - und CardDAV.
http://www.davical.org