2013-05-30 27 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

相关问题