如何在Shopware 6中获取公用文件夹绝对路径?

Dha*_*iya 6 shopware shopware6

我试图在 shopware 6 中获取公共文件夹路径,以便使用文件系统在内部创建目录。有人对此有什么想法吗?

Ale*_*lex 5

你可以看看服务

shopware.filesystem.public其定义于

vendor/shopware/core/Framework/DependencyInjection/filesystem.xml作为

   <service class="League\Flysystem\FilesystemInterface" id="shopware.filesystem.public" public="true">
        <factory service="Shopware\Core\Framework\Adapter\Filesystem\FilesystemFactory" method="factory"/>
        <argument>%shopware.filesystem.public%</argument>
    </service>
Run Code Online (Sandbox Code Playgroud)

当你注入这个服务时,你可以调用

$publicFileSystem->createDir('folder')
Run Code Online (Sandbox Code Playgroud)

创建您的文件夹。

这并不能完全回答有关如何获取路径的问题 - 但您通常不需要它,因为您不会直接与文件系统交互,而是通过Flysystem类交互。

如果您确实需要该路径,您可以尝试类似的方法

$publicFileSystem->getMetaData('.')['path']
Run Code Online (Sandbox Code Playgroud)

这未经我测试,正如之前所写,您可能只是不需要该路径。另请记住,底层文件系统甚至可能不是本地存储。