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