xp-framework/io-collections 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

xp-framework/io-collections

最新稳定版本:v10.1.0

Composer 安装命令:

composer require xp-framework/io-collections

包简介

I/O Collections for the XP Framework

关键字:

README 文档

README

Build status on GitHub XP Framework Module BSD Licence Requires PHP 7.0+ Supports PHP 8.0+ Latest Stable Version

API

The entry point for accessing I/O collections are the io.collections.IOCollection implementations:

  • io.collections.FileCollection - files in a given filesystem path
  • io.collections.ArchiveCollection - files inside a XAR archive

To access the files from more than one collection, use the io.collections.CollectionComposite class.

Iteration

The subpackage io.collections.iterate allows iterating I/O collections.

  • io.collections.iterate.IOCollectionIterator - iterate a given I/O collection, optionally recursive
  • io.collections.iterate.FilteredIOCollectionIterator - as above, but with an optional filter

Filters

The following filters are available:

Date-based:

  • io.collections.iterate.AccessedAfterFilter(util.Date $date)
  • io.collections.iterate.AccessedBeforeFilter(util.Date $date)
  • io.collections.iterate.CreatedAfterFilter(util.Date $date)
  • io.collections.iterate.CreatedBeforeFilter(util.Date $date)
  • io.collections.iterate.ModifiedAfterFilter(util.Date $date)
  • io.collections.iterate.ModifiedBeforeFilter(util.Date $date)

Size-based:

  • io.collections.iterate.SizeEqualsFilter(int $compare)
  • io.collections.iterate.SizeBiggerThanFilter(int $limit)
  • io.collections.iterate.SizeSmallerThanFilter(int $limit)

Name-based:

  • io.collections.iterate.ExtensionEqualsFilter(string $compare)
  • io.collections.iterate.NameEqualsFilter(string $compare)
  • io.collections.iterate.NameMatchesFilter(string $pattern)
  • io.collections.iterate.UriMatchesFilter(string $pattern)

Type-based:

  • io.collections.iterate.CollectionFilter()

To combine filters, use the util.Filters class.

Example

This finds all JPEG files inside the directory /home/thekid/multimedia:

use io\collections\FileCollection;
use io\collections\iterate\{FilteredIOCollectionIterator, ExtensionEqualsFiler};
use util\cmd\Console;
use util\Filters;

$iterator= new FilteredIOCollectionIterator(
  new FileCollection('/home/thekid/multimedia'),
  Filters::allOf([new ExtensionEqualsFilter('.jpg'), new ExtensionEqualsFilter('.JPG')]), 
  true
);

foreach ($iterator as $file) {
  Console::writeLine($file);
}

See also

统计信息

  • 总下载量: 70.73k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 5
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: BSD-3-Clause
  • 更新时间: 2015-12-13