0

我正在编写一个管理文件(浏览、移动、删除等)的 php 应用程序,我需要为此创建几个函数。

我有两种方法来编写这些函数。

  • 选项 1,使用对象:

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

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

所以我的问题是:

哪种解决方案更好?性能差别大吗?

4

2 回答 2

3

性能差异是不存在的。

第一个选项在可维护性和可扩展性方面要好得多。

但是,请考虑将 , 之类的方法移动到单独的管理器类movedelete以便将来当您需要新的文件系统支持(例如 S3)时,您将不会面临重构地狱。

更好的是,考虑不要重新发明轮子并研究开源解决方案,例如https://github.com/KnpLabs/Gaufrette

于 2013-05-30T19:15:53.967 回答
1

我个人更喜欢 OOP 方法,因为您生成了更便携、可扩展、可维护和可读的代码。

如果您选择使用选项 1,那么我强烈建议您查看SplFileObject。您可以从中扩展您自己的类,并拥有许多开箱即用的重要方法。

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

另请阅读有关FilesystemIteratorDirectoryIterator的信息,以免重新发明轮子。

于 2013-05-30T19:52:34.280 回答