2012-09-12 75 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來獲取真實的文件名。