wittiws/splash

此包已被弃用且不再维护。作者建议使用 brainite/splash 包。

链式SPL和自定义迭代器。

dev-master 2019-05-30 17:23 UTC

This package is auto-updated.

Last update: 2020-02-27 17:23:01 UTC


README

已测试PHP 5.3/5.4/5.5/HHVM

Build Status

Splash 是一种链式(因此简洁)的方式与 SPL 迭代器交互。

// Basic example.
\Splash\Splash::mount();
foreach (splash(__DIR__)->recursiveDirectory()->recursiveIterator()->regex($match) as $path) {
}

更多信息,请访问项目页面。

Splash自定义迭代器

Splash附带了一些未包含在 SPL 中的迭代器。目前包括:

InverseRegexIterator

这是一个简单的迭代器,它排除任何与正则表达式匹配的项。

$dat = splash('a', 'b')->inverseRegex('/a/')->toArray();
// $dat == array('b')

SliceIterator

这是一个简单的迭代器,将结果缩小到类似于 array_slice() 的切片数组。

$dat = splash('a', 'b', 'c')->slice(1, 1)->toArray();
// $dat == array('b')

CallbackIterator

这是一个迭代器,对每个元素执行回调,并允许回调返回 TRUE 保留值(类似于 CallbackFilterIterator),或者直接操作新迭代器。直接前进选项允许通过回调分割值。

/**
 * Callback for CallbackIterator
 *
 * @param $current   Current item's value
 * @param $key       Current item's key
 * @param $iterator  Iterator being traversed
 * @param $new_iterator Iterator being built (to allow item splits)
 * @return boolean   TRUE to auto-add the current item to $new_iterator, FALSE otherwise
 */
function my_callback(&$current, $key, $iterator, &$new_iterator) {
  $current = 'a';
  return TRUE;
}

$dat = splash('a', 'b', 'c')->callback('my_callback')->toArray();
// $dat == array('a', 'a', 'a')