如何使用Gaufrette Stream Wrappers?

时间:2014-01-31 14:09:20

标签: symfony stream gaufrette

如果我在symfony2 config.yml中定义了以下流包装器:​​

knp_gaufrette:
    adapters:
        my_drive:
            local:
                directory: %my_drive_path%
                create:     true
    filesystems:
        user_fs:
            adapter:    my_drive
            alias:      my_drive_filesystem
    stream_wrapper:
        protocol: data

如何在我的控制器中使用它来下载文件?

我有这样的事情:

$response = new BinaryFileResponse("data://user_fs/" . $key);

所以我使用地址调用我的文件:"data://user_fs/" 我可以改变它不要使用它,如果我在配置中更改名称,我也将不得不在我的控制器中更改它。我想只在一个文件(配置)

中管理它

1 个答案:

答案 0 :(得分:1)

您可以在parameters.yml

中将路径定义为参数
parameters:
    data_protocol: data
    data_filesystem: user_fs
    data_path: "%data_protocol%://%data_filesystem%/"

从容器中获取它:

$path = $this->get('system_container')->getParameter('data_path')
$response = new BinaryResponse($path . $key);