plumphp / plum-file
额外的转换器和文件处理工具,以在Plum中工作。
v0.2.1
2015-04-28 20:34 UTC
Requires
- php: >=5.4
- cocur/vale: ~0.2
- plumphp/plum: ~0.2
Requires (Dev)
- mikey179/vfsstream: ~1.4
- mockery/mockery: ~0.9
- phpunit/phpunit: ~4.3
README
PlumFile 包含转换器和过滤器,用于在Plum中处理文件。Plum 是一个用于PHP的数据处理管道。
由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 文件。