2

我必须阅读并提供大量资源(图像和文件),并且我想隐藏存储资源的真实路径。使用 symfony 2.x 最好的方法是什么?

4

1 回答 1

2

如果你想从文件系统中抽象出来,你可以使用KnpGaufretteBundle。Gaufrette 是一个抽象文件系统的 PHP 库。也就是说,无论资源存储在何处(例如,本地文件系统、FTP 服务器、Amazon S3、Dropbox 等),您都可以访问它们。

但是, Gaufrette 并没有抽象路径(您为文件系统设置了一种基本目录),您将使用相对于该基本目录的路径。考虑以下抽象本地文件系统的代码:

<?php

use Gaufrette\Filesystem;
use Gaufrette\Adapter\Local as LocalAdapter;

$adapter = new LocalAdapter('/var/media');
$filesystem = new Filesystem($adapter):

$content = $filesystem->read('myFile.txt');

$content = 'Hello I am the new content';

$filesystem->write('myFile.txt', $content);

在此示例中,您将读取和写入文件/var/media/myFile.txt

如果您想进一步抽象文件系统,您可以创建一个具有文件映射及其别名的服务。例如,您可以从 YAML 配置文件中读取这些文件/别名对的列表。然后,您可以使用某种带有别名作为参数的 getter 来获取真实的文件名。

于 2012-09-12T11:46:02.917 回答