2012-09-12 40 views

回答

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来获取真实的文件名。