jeroen-de-dauw / 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
:一个间谍(测试双胞胎)
由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
实现