plumphp/plum-file

额外的转换器和文件处理工具,以在Plum中工作。

v0.2.1 2015-04-28 20:34 UTC

This package is auto-updated.

Last update: 2024-09-08 15:08:42 UTC


README

Plum

PlumFile 包含转换器和过滤器,用于在Plum中处理文件。Plum 是一个用于PHP的数据处理管道。

Build Status Windows Build status Scrutinizer Code Quality Code Coverage StyleCI

由Florian Eckerstorfer在奥地利维也纳开发。

安装

您可以使用Composer安装Plum。

$ composer require plumphp/plum-file

使用方法

有关Plum的更多信息,请参阅Plum 文档

文件扩展名过滤器

Plum\PlumFile\FileExtensionFilter 检查文件扩展名是否匹配。

use Plum\PlumFile\FileExtensionFilter;

$filter = new FileExtensionFilter('md');
$filter->filter('README.md'); // -> true
$filter->filter('README.html'); // -> false

如果项目结构更复杂,例如数组或对象,FileExtensionFilter 使用 Symfony 的 属性访问 从项目检索文件名。您可以将属性路径作为构造函数的第二个参数传递。

use Plum\PlumFile\FileExtensionFilter;

$filterArray = new FileExtensionFilter('md', '[filename]');
$filterArray->filter(['filename' => 'README.md']); // -> true
$filterArray->filter(['filename' => 'README.html']); // -> false

$item = new stdClass();
$item->filename = 'README.md';
$filterObject = new FileExtensionFilter('md', 'filename');
$filterObject->filter($item); // -> true
$item->filename = 'README.html';
$filterObject->filter($item); // -> false

传递给构造函数的扩展名也可以是一个数组。如果给定的项目与数组中的任何扩展名匹配,则过滤器返回 true

$filter = new FileExtensionFilter(['md', 'html']);
$filter->filter('file.md');   // -> true
$filter->filter('file.html'); // -> false
$filter->filter('file.csv`);  // -> false

FileExtensionFilter 一样,ModificationTimeFilter 也使用属性访问组件来检索文件名。您可以将属性路径作为构造函数的第二个参数传递。文件可以是字符串或 SplFileInfo 实例。

修改时间过滤器

Plum\PlumFile\ModificationTimeFilter 返回文件是否在指定时间之前或之后修改过。

use Plum\PlumFile\ModificationTimeFilter;

$after = new ModificationTimeFilter(['after' => new DateTime('-3 days')]);
$after->filter('modified-2-days-ago.txt'); // -> true
$after->filter('modified-4-days-ago.txt'); // -> false

$before = new ModificationTimeFilter(['before' => new DateTime('-3 days')]);
$before->filter('modified-4-days-ago.txt'); // -> true
$before->filter('modified-2-days-ago.txt'); // -> false

$range = new ModificationTimeFilter(['after' => new DateTime('-6 days'), 'before' => new DateTime('-3 days')]);
$range->filter('modified-4-days-ago.txt'); // -> true
$range->filter('modified-8-days-ago.txt'); // -> false
$range->filter('modified-2-days-ago.txt'); // -> false

文件获取内容转换器

Plum\PlumFile\FileGetContentsConverter 接受 SplFileInfo 对象或文件名,并返回文件内容。

use Plum\PlumFile\FileGetContentsConverter;

$converter = new FileGetContentsConverter();
$converter->convert('foo.txt'); // -> 'content of foo.txt'

如果项目结构更复杂,可以定义用于文件名和内容的 Vale 访问器属性。

use Plum\PlumFile\FileGetContentsConverter;

$converter = new FileGetContentsConverter('file', 'content');
$converter->convert(['file' => foo.txt']);
// -> ['file' => 'foo.txt', 'content' => content of foo.txt']

变更日志

版本 0.2.1 (2015年4月28日)

  • 修复Plum版本

版本 0.2 (2015年4月22日)

  • 将Plum版本设置为0.2

版本 0.1 (2015年3月18日)

  • 初始发布

许可

MIT 许可证适用于 plumphp/plum-finder。有关完整的版权和许可信息,请查看与源代码一起分发的 LICENSE 文件。