jeroen / file-fetcher
简单的文件获取接口
6.1.0
2022-04-26 17:29 UTC
Requires
- php: >=7.3
- psr/log: ~3.0|~2.0|~1.0
Requires (Dev)
- jeroen/psr-log-test-doubles: ~3.1
- phpstan/phpstan: ~1.6.0
- phpunit/phpunit: ~9.5
- squizlabs/php_codesniffer: ~3.2
- vimeo/psalm: ^4.22.0
Suggests
- jeroen/file-fetcher-cache: Provides a SimpleCache (PSR-16) decorator for file fetchers
- jeroen/file-fetcher-stopwatch: Provides a Symfony Stopwatch decorator for file fetchers
README
该库背后的理念是提供一个非常基本的接口(FileFetcher
),这对于95%的网络安全访问情况是理想的,例如典型的file_get_contents
调用。它明确不尝试处理更复杂的情况。
提供了一些基本的实现。这包括测试双倍,通常用于测试使用FileFetcher
接口的服务。您可以在自己的代码库中轻松创建一个适配器,以适配更重的网络访问库(例如Guzzle)。
用法
$fileContent = $fileFetcher->fetchFile($fileLocation);
该库在其核心提供了对FileFetcher
接口的一些简单实现
SimpleFileFetcher
:在file_get_contents
周围使用适配器
InMemoryFileFetcher
:在其构造函数提供的数组周围使用适配器ThrowingFileFetcher
:对所有调用抛出FileFetchingException
NullFileFetcher
:对所有调用返回空字符串StubFileFetcher
:对所有调用返回存根值CallbackFileFetcher
:在回调周围使用适配器LazyStubFileFetcher
:对所有调用返回懒加载的存根值
它还提供了一些装饰器
ErrorLoggingFileFetcher
:通过PSR-3 LoggerInterface记录错误SpyingFileFetcher
:一个spy(测试双倍)
jeroen/file-fetcher-cache提供的装饰器
PsrCacheFileFetcher
:通过PSR-16 SimpleCache缓存文件内容CachingFileFetcher
:缓存文件内容。需要加载jeroen/simple-cache
jeroen/file-fetcher-stopwatch提供的装饰器
StopwatchFileFetcher
:使用Symfony Stopwatch进行调用分析。需要加载symfony/stopwatch
安装
您可以使用Composer下载并安装此包及其依赖项。
要将此包添加为项目级别的本地依赖项,只需在项目的composer.json
文件中添加对jeroen/file-fetcher
的依赖即可。以下是一个定义FileFetcher 6.x依赖的最小composer.json
文件示例
{
"require": {
"jeroen/file-fetcher": "~6.0"
}
}
开发
通过执行以下命令安装项目依赖项
composer update
您可以通过执行以下命令运行测试
make test
您可以通过执行以下命令运行样式检查
make cs
要运行所有CI检查,请执行以下命令
make ci
您还可以直接调用PHPUnit并传递参数,如下所示
vendor/bin/phpunit --filter SomeClassNameOrFilter
发布说明
6.1.0 (2022-04-26)
- 增加了对使用
psr/log
2.x和3.x进行安装的支持 - 将最低PHP版本从7.1提升到7.3
- 改进了类型文档
6.0.0 (2019-01-17)
破坏性变更以增加包的稳定性,并避免未来需要破坏性变更。
- 移除了
PsrCacheFileFetcher
,现在它是jeroen/file-fetcher-cache
的一部分 - 移除了
CachingFileFetcher
,现在它是jeroen/file-fetcher-cache
的一部分 - 移除了
StopwatchFileFetcher
,现在它是jeroen/file-fetcher-stopwatch
的一部分
5.0.1 (2019-01-16)
PsrCacheFileFetcher
现在确保缓存键有效
5.0.0 (2019-01-16)
- 添加了
PsrCacheFileFetcher
- 添加了
StopwatchFileFetcher
jeroen/simple-cache
,这是CachingFileFetcher
所需要的,现在默认不再加载
4.5.0 (2018-12-19)
- 许可证从 GPL-2.0-or-later 更改为 BSD-3-Clause
4.4.0 (2018-05-31)
- 停止支持 PHP 7.0
- 添加了
CallbackFileFetcher
- 添加了
LazyStubFileFetcher
4.3.0 (2017-06-10)
- 向
SpyingFileFetcher
添加了getFirstFetchedUrl
- 向
InMemoryFileFetcher
添加了$defaultContent
构造函数参数
4.2.0 (2017-06-07)
- 添加了
StubFileFetcher
4.1.0 (2017-05-11)
- 添加了
ThrowingFileFetcher
- 添加了
NullFileFetcher
4.0.0 (2017-05-09)
重大变更
- 向
FileFetcher
接口及其实现添加了标量类型提示 - 向
FileFetchingException
添加了标量类型提示
其他变更
- 停止支持 PHP 5.x
- 添加了
ErrorLoggingFileFetcher
- 添加了
SpyingFileFetcher
3.1.0 (2016-01-07)
- 添加了
InMemoryFileFetcher
3.0.0 (2015-08-21)
- 添加了
FileFetchingException
,现在在FileFetcher
的实现中出现错误时应该抛出 CachingFileFetcher
的非公共字段和方法现在是私有的,而不是受保护的- 添加了 PHPCS 和 PHPMD 集成
2.0.0 (2014-08-19)
- 移除了
FileFetcher.php
入口点。现在通过 Composers PSR-4 支持自动加载。
1.0.1 (2013-07-06)
- 添加了
SimpleFileFetcher
实现
1.0.0 (2013-07-06)
- 首次发布,包括
FileFetcher
接口和CachingFileFetcher
实现