fidry / filesystem
Symfony Filesystem 增加了一些实用工具。
1.2.1
2023-12-10 13:29 UTC
Requires
- php: ^8.1
- symfony/filesystem: ^6.4 || ^7.0
- thecodingmachine/safe: ^2.0
Requires (Dev)
- bamarni/composer-bin-plugin: ^1.4
- ergebnis/composer-normalize: ^2.28
- infection/infection: >=0.26
- phpunit/phpunit: ^10.3
- symfony/finder: ^6.4 || ^7.0
This package is auto-updated.
Last update: 2024-09-04 11:45:07 UTC
README
这是对 Symfony filesystem 的小型封装。它提供
- 一个名为
FileSystem
的新类(扩展了 Symfony 类),具有一些额外的功能。 - 一个
FS
静态类,当您对使用依赖注入来操作文件系统层不感兴趣时使用。 - 一个 PHPUnit 的
FileSystemTestCase
类,它允许您轻松编写依赖文件系统的测试。
使用方法
PHPUnit 测试示例
<?php declare(strict_types=1); namespace App; use Fidry\FileSystem\FS; use Fidry\FileSystem\Test\FileSystemTestCase; use PHPUnit\Framework\Attributes\CoversClass; use Symfony\Component\Finder\Finder; use function getenv; use function is_string; final class MyAppFileSystemTest extends FileSystemTestCase { public static function getTmpDirNamespace(): string { // This is to make it thread safe with Infection. If you are not using // infection or do not need thread safety, this can return a constant // string, e.g. your project/library name. $threadId = getenv('TEST_TOKEN'); if (!is_string($threadId)) { $threadId = ''; } return 'MyApp'.$threadId; } public function test_it_works(): void { // This file is dumped into a temporary directory. Here // something like '/private/var/folders/p3/lkw0cgjj2fq0656q_9rd0mk80000gn/T/MyApp/MyAppFileSystemTest10000' // on OSX. FS::dumpFile('file1', ''); $files = Finder::create() ->files() ->in($this->tmp); self::assertSame(['file1'], $this->normalizePaths($files)); } }
贡献
GNU Make 是您的朋友。尝试 make
或 make help
!。