jeroen/file-fetcher

简单的文件获取接口

6.1.0 2022-04-26 17:29 UTC

This package is auto-updated.

Last update: 2024-09-14 19:52:57 UTC


README

Build Status codecov Type Coverage Psalm level Latest Stable Version Download count

该库背后的理念是提供一个非常基本的接口(FileFetcher),这对于95%的网络安全访问情况是理想的,例如典型的file_get_contents调用。它明确不尝试处理更复杂的情况。

提供了一些基本的实现。这包括测试双倍,通常用于测试使用FileFetcher接口的服务。您可以在自己的代码库中轻松创建一个适配器,以适配更重的网络访问库(例如Guzzle)。

用法

$fileContent = $fileFetcher->fetchFile($fileLocation);

该库在其核心提供了对FileFetcher接口的一些简单实现

  • SimpleFileFetcher:在file_get_contents周围使用适配器
  • InMemoryFileFetcher:在其构造函数提供的数组周围使用适配器
  • ThrowingFileFetcher:对所有调用抛出FileFetchingException
  • NullFileFetcher:对所有调用返回空字符串
  • StubFileFetcher:对所有调用返回存根值
  • CallbackFileFetcher:在回调周围使用适配器
  • LazyStubFileFetcher:对所有调用返回懒加载的存根值

它还提供了一些装饰器

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 实现

链接