- How do I install pbmedia/laravel-webdav in a Laravel app?
- Run composer require pbmedia/laravel-webdav and let Laravel package auto-discovery register the service provider. The package resolves cleanly on the Laravel 8 and Flysystem v1 generation. On Laravel 9 or newer you should expect a hard Composer conflict because the package pins Flysystem v1.
- Does laravel-webdav work with Laravel 9, 10, or 11?
- No. The last release was 2021-12-19 and the repository is archived, with constraints built for Flysystem v1. Laravel 9 rebased its filesystem layer on Flysystem v3, so Composer will refuse to install this package alongside it. For newer Laravel versions, port the adapter or wire league/flysystem-webdav through a custom disk driver.
- How do I add a WebDAV disk to Laravel's filesystems config?
- Add a disk entry in config/filesystems.php with driver set to webdav plus your endpoint, root path, username, and password. The package registers the webdav driver on Laravel's Storage facade, so after configuration you can call Storage::disk('webdav') like any other disk. Check the package README for the exact key names your version expects.
- Can I use Laravel Storage methods like put, get, allFiles, and delete on WebDAV?
- Yes. The package is a thin Flysystem adapter, so familiar Storage calls work for reading, writing, listing, and deleting files. Be careful with recursive calls like allFiles because each operation becomes synchronous WebDAV requests, and a recursive listing can trigger many PROPFIND round trips.
- Is pbmedia/laravel-webdav still maintained?
- No. The repository is archived, the last release was in December 2021, and there is no security-response path or maintainer to ask about edge cases. Treat it as a reference implementation rather than a long-term dependency. The code is MIT licensed, so forking and porting it is legally and technically unencumbered.
- What are the best alternatives to laravel-webdav?
- The lower-risk path is league/flysystem-webdav, the maintained Flysystem v3 WebDAV adapter, wired through a custom disk driver in a service provider. That trades roughly a day of glue work for a dependency that tracks current Laravel and Flysystem releases. Laravel's built-in FTP or SFTP drivers are simpler if your endpoint supports them.
- Does laravel-webdav support chunked uploads or large files?
- No. The underlying WebDAV client is synchronous and per-operation, with no chunked upload support, so a large file write becomes one long-lived PUT. That can hit PHP max_execution_time, proxy idle timeouts, or server body-size limits depending on the endpoint. For large files you need server-side chunking or MKCOL-based segmentation.
- How should I test a WebDAV disk in a Laravel application?
- Because the disk goes through Laravel's Storage facade, you can use Storage::fake for unit tests that only care about your application flow. A fake will not exercise real WebDAV semantics, so also run integration tests against a test WebDAV server such as Nextcloud or Apache mod_dav. The package ships no compatibility matrix, so endpoint-specific behavior is your own discovery work.
- What authentication methods does Laravel WebDAV support?
- It depends on the underlying sabre/dav WebDAV client and the endpoint. Basic and Digest authentication are the common cases, while Bearer tokens or OAuth-wrapped SharePoint WebDAV may not be supported by this adapter. Verify the auth scheme before committing, because auth alone can invalidate the adapter.
- Should I use laravel-webdav in production?
- Treat it as a reference implementation, not a production dependency, unless you are locked to Laravel 8 and accept the maintenance risk. The repository is archived, compatibility varies sharply across Nextcloud, Apache mod_dav, Box, and SharePoint, and there is no security-response path. For Laravel 9 and above, replace it with a maintained Flysystem v3 adapter.