我找到了这个symfony组件The Filesystem,但我不确定是否应该使用此组件或本机PHP。 mkdir
的示例:
// With symfony:
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\Filesystem\Exception\IOExceptionInterface;
$fs = new Filesystem();
$fs->mkdir('/tmp/photos', 0700);
// Native PHP:
mkdir('/tmp/photos', 0700);
与使用$fs->exists()
代替file_exists()
或$fs->touch()
代替touch()
相同。然后有$fs->copy()
支持第三个参数(bool)切换覆盖现有文件,而原生copy()
将始终覆盖目标文件。
我根本没有使用symfony,只有少数我使用过的供应商,这就是我找到它的地方。我的意思是,我为什么要使用这个组件?在我看来,本身功能与额外的步骤。您的建议有助于了解我是否应该在将来使用这样的组件。
答案 0 :(得分:5)
interfaces
的力量)与引擎一起使用亚马逊,保管箱或其他一些外部驱动器。这是我的观点。 在我看来,#3是最大的优势。
如果您今天正在使用本地驱动器,而您正在执行file_exists
,那么它将起作用。但明天你的老板会说“从现在起我们就是CDNing文件. You'll have to go into the code and change all
file_exists methods with
s3_file_exists`。
一旦你使用Symfony的课程,你所要做的就是用\Amazon\Custom\Package\FileSystem
之类的东西交换它,你就可以了!
答案 1 :(得分:1)
Filesystem组件是一些PHP filesystem functions的包装器。
在我看来,它对普通PHP函数的最重要改进是可以递归地在目录及其所有文件和子目录上应用函数(copy()
,remove()
,{{1 },mkdir()
等。)
它提供的另一项重要改进是可移植性。该库负责处理操作系统之间的差异(目录分隔符,Windows上不存在的某些功能等)。