jeroen-de-dauw/file-fetcher

此包已被弃用且不再维护。作者建议使用jeroen/file-fetcher包。

简单的文件获取接口

6.1.0 2022-04-26 17:29 UTC

This package is auto-updated.

Last update: 2024-05-14 19:09:08 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 实现

链接