2013-05-30 53 views
1

我正在寫一個管理文件(瀏覽,移動,刪除等)的php應用程序,我需要爲此創建幾個函數。每個文件的php對象都是好主意嗎?

我有兩種方法來編寫這些函數。

  • 選項1,使用對象:

    $myFile = new ofile('myFile.txt'); 
    $myFile->move('someDirectory'); 
    $myFile->delete(); 
    
  • 選項2,使用正常的功能:

    move('myFile.txt','someDirectory/myFile.txt'); 
    unlink('someDirectory/myFile.txt'); 
    

所以我的問題是:

哪種方案更好?性能差異很大嗎?

+7

不,差別在於風格 - 不在表現。 – troelskn

+4

選項1更性感...... – Orangepill

+2

這個問題是完全合法的 - 投票重新打開。 – alfasin

回答

3

性能差異是不存在的。

第一個選項對於可維護性和可擴展性來說要好得多。

但是,考慮移動像movedelete這樣的方法來分離管理器類,以便將來當您需要新的文件系統支持時(例如S3),您將不會面臨重構地獄。

更重要的是,考慮不重新發明輪子,展望開源解決方案,如https://github.com/KnpLabs/Gaufrette

1

我個人比較喜歡的面向對象的方法比較多,因爲你生產出更輕便,可擴展,可維護和可讀的代碼。

如果您選擇使用選項1,那麼我強烈建議您查看SplFileObject。您可以從中擴展自己的課程,並提供許多重要的方法。

$file = new SplFileObject('example.php'); 
var_dump($file->getRealPath()); 
var_dump($file->getFilename()); 

也瞭解FilesystemIteratorDirectoryIterator不推倒重來。

+0

+1重用Spl。 –

+0

我總是想知道,很少有人知道SPL的迭代器和其他很酷的擴展。 – bitWorking

相關問題