2
我必须阅读并提供大量资源(图像和文件),并且我想隐藏存储资源的实际路径。用symfony 2.x做什么是最好的方法?如何在symfony2中隐藏图像和文件的物理路径
我必须阅读并提供大量资源(图像和文件),并且我想隐藏存储资源的实际路径。用symfony 2.x做什么是最好的方法?如何在symfony2中隐藏图像和文件的物理路径
如果你想从文件系统中抽象出来,你可以使用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来获取真实的文件名。