我正在编写一个管理文件(浏览,移动,删除等)的php应用程序,我需要为此创建几个函数。
我有两种方法来编写这些函数。选项1,使用对象:
$myFile = new ofile('myFile.txt'); $myFile->move('someDirectory'); $myFile->delete();
选项2,使用正常功能:
move('myFile.txt','someDirectory/myFile.txt'); unlink('someDirectory/myFile.txt');
我的问题是:
哪个解决方案更好?在性能上有很大的不同吗?
不存在性能差异。
第一个选项在可维护性和可扩展性方面要好得多。
但是,考虑将move
、delete
这样的方法移到单独的管理器类中,这样将来当您需要新的文件系统支持(例如S3)时,您就不会面临重构的麻烦了。
更好的是,考虑不要重新发明轮子,而是寻找开源解决方案,例如https://github.com/KnpLabs/Gaufrette
我个人更喜欢OOP方法,因为这样可以生成更可移植、可扩展、可维护和可读的代码。
如果您选择选项1,那么我强烈建议您查看SplFileObject。你可以从它扩展你自己的类,并且有许多开箱即用的重要方法。
$file = new SplFileObject('example.php');
var_dump($file->getRealPath());
var_dump($file->getFilename());
还可以阅读FilesystemIterator和DirectoryIterator,以避免重新发明轮子。