# SW5: Wie kriege ich einen WebDAV-Adapter lauffähig?

**URL:** <https://forum.shopware.com/t/sw5-wie-kriege-ich-einen-webdav-adapter-lauffahig/70774>\
**Category:** Programmierung\
**Created:** [9. November 2020 um 14:27 UTC](https://forum.shopware.com/t/sw5-wie-kriege-ich-einen-webdav-adapter-lauffahig/70774 "2020-11-09T14:27:27Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![endeehjeeh](https://avatars.discourse-cdn.com/v4/letter/e/a5b964/32.png) [@endeehjeeh](https://forum.shopware.com/u/endeehjeeh)\
**Post date:** [9. November 2020 um 14:27 UTC](https://forum.shopware.com/t/sw5-wie-kriege-ich-einen-webdav-adapter-lauffahig/70774/1 "2020-11-09T14:27:27Z")

</div>

Hallo,

ich habe mir einen Adapter-Prototypen für WebDAV gebaut auf folgender Basis:  
\* Anleitung:&nbsp;[MediaService](https://developers.shopware.com/developers-guide/shopware-5-media-service/#file-system-adapters)  
\* Client:&nbsp;[WebDAV client - sabre/dav](https://sabre.io/dav/davclient/)  
\* Adapter:&nbsp;[WebDAV Adapter - Flysystem](https://flysystem.thephpleague.com/v1/docs/adapter/webdav/)

Das Problem ist, dass der Adapter auf die Existenz des&nbsp;Config-Paramters **‘visibility’** prüft und sobald dieser gesetzt ist, eine LogicException wirft:

```
 if ($config-\>get('visibility')) { throw new LogicException(\_\_CLASS\_\_.' does not support visibility settings.'); }

```

Der Parameter wird in der **MediaServiceFactory** &nbsp;aber per se&nbsp;gesetzt:

```
 $filesystem = new Filesystem($adapter, ['visibility' =\> AdapterInterface::VISIBILITY\_PUBLIC]); 

```

Ist jemand bereits über dieses Problem gestolpert bzw. hat einen Denkanstoß für mich parat?

Danke  
Andreas

---

<div class="post-metadata">

**Author:** ![endeehjeeh](https://avatars.discourse-cdn.com/v4/letter/e/a5b964/32.png) [@endeehjeeh](https://forum.shopware.com/u/endeehjeeh)\
**Post date:** [10. November 2020 um 12:38 UTC](https://forum.shopware.com/t/sw5-wie-kriege-ich-einen-webdav-adapter-lauffahig/70774/2 "2020-11-10T12:38:23Z")

</div>

Kurzes Update:

Die einzige Möglichkeit bisher ist das Überschreiben der MediaServiceFactory und diese um eine Abfrage zu erweitern - was am Ende keine elegante Lösung ist, den restlichen Code zu duplizieren:

```
 public function factory($backendName): MediaServiceInterface {

```

&nbsp; &nbsp; &nbsp; &nbsp; …

```
 if ($backendName === 'webdav') { $filesystem = new Filesystem($adapter); } else { $filesystem = new Filesystem($adapter, ['visibility' =\> AdapterInterface::VISIBILITY\_PUBLIC]); } ... } 

```

&nbsp;
