🚀 İlk alpha sürümünü Laravel WebDAV sunucumun yayımladım:
👉 https://github.com/N3XT0R/laravel-webdav-server/releases/tag/1.0.0-alpha.1
⚠️ Uyarı
Bu, erken aşamada bir alpha prototipidir.
Durumu:
- stabil değil
- üretime hazır değil
- her an kırılma değişikliklerine açık
Mevcut odak, mimari ve genişletilebilirlik üzerindedir, tamamlanabilirlik üzerinde değil.
Sorun
Laravel ekosisteminde gerçekten yerel bir WebDAV sunucu çözümü mevcut değil.
Mevcut yaklaşımlar genellikle iki kategoriye düşmektedir:
- Sıhhatli sınırlamalarla birlikte SabreDAV’ın ince sargıları
- WebDAV istemci adaptörleri (örneğin, Storage::disk()), gerçek sunucular değil
Eksik olan şey, şudur:
- Laravel mimarisine temiz bir şekilde entegre olan
- mevcut kimlik doğrulama ve yetkilendirme kavramlarına saygı duyan
- Laravel’in dosya sistemi soyutlaması (Flysystem) ile doğal bir şekilde çalışan
Fikir
Bu paket, WebDAV protokolü ile Laravel’in dosya sistemi soyutlaması arasında bir köprü kurmayı amaçlamaktadır.
Ham dosya sistemini yollarını açmak yerine, WebDAV düğümlerini doğrudan Laravel disklerine eşler.
Bu, aşağıdakileri yayımlamanız anlamına gelir:
- yerel depolama
- S3 bucket’ları
- veya herhangi bir Flysystem destekli disk
Bir WebDAV uç noktası aracılığıyla.
Neyi farklı kılıyor?
1. Yerel Laravel entegrasyonu
Bu, Laravel üzerine yerleştirilmiş bağımsız bir WebDAV sunucusu değildir.
Birinci sınıf bir Laravel bileşeni gibi hissetmek üzere tasarlanmıştır.
2. Açık istek boru hattı (sihir yok)
Her istek, belirli bir akış takip eder:
Denetleyici → Fabrika → Kimlik Doğrulama → Alan Çözümleme → Yetkilendirme → Depolama
Burada:
- gizli bir sihir yok
- kara kutu yok
- gizli bir davranış yok
Her adım şeffaf ve değiştirilebilir.
3. Açık endişe ayrımı
Mimari, katı bir şekilde ayrılır:
- WebDAV taşınımı (SabreDAV)
- Uygulama mantığı (Laravel)
- Depolama (Flysystem)
4. Eklentilere açık mimari
Temel bileşenler, arayüzler aracılığıyla soyutlanmıştır:
- Kimlik doğrulama
- Depolama alanı çözümlemesi
- Yol seviyesi yetkilendirme
Tüm bağlamalar bindIf() kullanır, böylece paketin kodunu değiştirmeden bunları geçersiz kılabilirsiniz.
5. Politika yerli yetkilendirme
Yetkilendirme, doğrudan Laravel’in Gate ve Politikaları ile entegre edilir.
6. Dinamik depolama eşlemesi
Depolama, çalışma zamanında şu temellere göre çözülür:
- kullanıcı (ana)
- rota parametresi {alan}
Bu paket ne?
✔ Laravel için WebDAV sunucusu (HTTP uç noktası)
✖ Storage::disk(‘webdav’) istemci sürücüsü değil
Mevcut özellik seti
- SabreDAV ile desteklenen WebDAV sunucusu
- WebDAV düğümlerinin Laravel dosya sistem disklerine eşlenmesi
- Eklenti kimlik doğrulama (varsayılan olarak Temel Kimlik Doğrulama)
- Esnek depolama alanı çözümlemesi
- Genişletilebilir yetkilendirme katmanı
- Arayüzler aracılığıyla temiz uzantı noktaları
Desteklenen işlemler
- PROPFIND
- GET
- PUT
- DELETE
- MKCOL
Eksiklikler
- Stabilite
- Uç durum yönetimi
- Üretim uygunluğu
Neden bu kadar erken yayımladım?
Çünkü mimari, en önemli kısımdır.
Geri bildirimler bekleniyor
Aşağıdakileri gerçekten takdir ederim:
- mimari geribildirim
- göz önünde bulundurmadığım uç durumlar
- gerçek dünya kullanımı için fikirler
GitHub
👉 https://github.com/N3XT0R/laravel-webdav-server/releases/tag/1.0.0-alpha.1
Anahtar Kelimeler
Kaynak: Orijinal Makale
- ⚠️ Uyarı
- Sorun
- Fikir
- Neyi farklı kılıyor?
- 1. Yerel Laravel entegrasyonu
- 2. Açık istek boru hattı (sihir yok)
- 3. Açık endişe ayrımı
- 4. Eklentilere açık mimari
- 5. Politika yerli yetkilendirme
- 6. Dinamik depolama eşlemesi
- Bu paket ne?
- Mevcut özellik seti
- Desteklenen işlemler
- Eksiklikler
- Neden bu kadar erken yayımladım?
- Geri bildirimler bekleniyor
- GitHub
- Anahtar Kelimeler


