mensbeam / filesystem
简化了使用许多PHP内置的文件系统函数
v1.0.1
2023-11-15 02:40 UTC
Requires
- php: >=8.1
- symfony/polyfill-ctype: >=1.8
- symfony/polyfill-mbstring: >=1.8
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.38
- phpunit/phpunit: ^10.4
- symfony/filesystem: *
Suggests
- ext-ctype: For better performance
- ext-mbstring: For better performance
README
这是Symfony的Filesystem组件的一个分支,它简化了PHP内置的文件系统函数。使用Symfony组件的一个常见问题是它不必要地实例化
use Symfony\Component\Filesystem; $fs = new Filesystem(); $fs->chmod('/path/to/file', 0600);
这很尴尬,因为没有理由去实例化它。在Filesystem中没有内容可以创建实例。没有定义的构造函数,也没有可以设置的属性。事实上,在类中只有一个静态属性用于存储最后遇到错误。这根本说不通。考虑到Filesystem包含的Path
类本身也是一个静态类,这尤其令人好奇。
这个分支通过使一切静态来消除这种无意义的行为
use MensBeam\Filesystem as Fs; Fs::chmod('/path/to/file', 0600);
注意
此库使用polyfills为ext-ctype
和ext-mbstring
。如果您已安装这些扩展,则polyfills不会运行。但是,如果您不希望不必要地安装polyfills,您可以在您的composer.json
中这样做
{ "require": { "ext-ctype": "*", "ext-mbstring": "*" }, "provide": { "symfony/polyfill-ctype": "*", "symfony/polyfill-mbstring": "*" } }