PHP WebDAV integration library

I recently started writing a WebDAV integration library for PHP.

WebDAV is a nasty beast for a number of reasons, but its a great tool to integrate your existing web infrastructure with a Desktop filesystem. WebDAV is built into every modern operating system since years, but I think the biggest reason we haven’t seen a lot of adoption is because of the difficulties with implementing it.

I intend to make this library as easy as possible to use, without making it a black-box-like system. Focus will not be on everything WebDAV could possibly provide, but instead on the features that are actually supported by the operating systems.

Implementing WebDAV will become as simple as creating an implementation of an abstract ‘Directory’ and an abstract ‘File’ class.

I’m kind of debating on the following two questions, perhaps a smart reader can comment on these…

  1. WebDAV supports custom properties, and in order to make the Server fully webdav-compliant, it should support these. I'm going to make this an optional feature, but, should this happen on:
    • A File level with a custom interface.</a>
    • Or a global 'Property manager'
    Reason I'm asking, is because while I was working on the sample implementation, it will not be easy to attach custom properties to physical files. Perhaps I should go for a combination of both?
  2. Same question goes for locking of files and directories. Does it make more sense to have a global Lock manager, or should this implemented on a per-file-class basis?

The project is up on Google Code hosting, and I opened up a discussion group as well. If you feel like helping out, or contributing please drop a line there! I’ll be needing people writing docs and tutorials, testers, coders and somebody who has some designing skills (no, it’s not just a logo, we’re actually going to put down something cool..). If required, you can also contact me directly.

Web mentions

Comments

  • carlos

    carlos

    Hi, are you aware of ezcomponents package for webdav (http://ezcomponents.org/docs/api/trunk/classtrees_Webdav.html)? might help you developing your own. regards, carlos
  • Derick Rethans

    Derick Rethans

    Or better, contribute! :) WebDAV is a real pain and we've had to do considerable work to get it going on different clients. Let me know if you're interested.
  • Theo

    Theo

    I will follow your progress closely, this is something I really would like to see -- and you doing it is even greater, I have full confidence that it will be good. I've looked at the ezcomponents webdav component, it was sometime ago so they might have done something more, but what I saw was not simple, and had no documentation. By the way, your CAPTCHA doesn't work when one of the operands is zero.
  • Chris

    Chris

    I would think clas level implementation of the property manager would be best $file->add_property('name', 'Willis.jpg'); and i would say the same for file locking.
  • cms

    cms

    @Van: it is only example..