function testLimitIterator()
 {
     $this->assertEquals(3, $this->_domainObjectCollection->getTotalRecordCount());
     $limitIT = new LimitIterator($this->_domainObjectCollection, 1, 2);
     $limitIT->rewind();
     $this->assertEquals($this->_domObject2, $limitIT->current());
     $limitIT->next();
     $this->assertEquals($this->_domObject3, $limitIT->current());
 }
Пример #2
0
 /**
  * Find one file and return.
  *
  * @param  string   $path         The directory path.
  * @param  mixed    $condition    Finding condition, that can be a string, a regex or a callback function.
  *                                Callback example:
  *                                <code>
  *                                function($current, $key, $iterator)
  *                                {
  *                                return @preg_match('^Foo', $current->getFilename())  && ! $iterator->isDot();
  *                                }
  *                                </code>
  * @param  boolean  $recursive    True to resursive.
  *
  * @return  \SplFileInfo  Finded file info object.
  *
  * @since  2.0
  */
 public static function findOne($path, $condition, $recursive = false)
 {
     $iterator = new \LimitIterator(static::find($path, $condition, $recursive), 0, 1);
     $iterator->rewind();
     return $iterator->current();
 }
Пример #3
0
 /**
  * Find one file and return.
  *
  * @param  mixed   $condition     Finding condition, that can be a string, a regex or a callback function.
  *                                Callback example:
  *                                <code>
  *                                function($current, $key, $iterator)
  *                                {
  *                                return @preg_match('^Foo', $current->getFilename())  && ! $iterator->isDot();
  *                                }
  *                                </code>
  * @param  boolean $recursive     True to resursive.
  *
  * @return  \SplFileInfo  Finded file info object.
  *
  * @since  1.0
  */
 public function find($condition, $recursive = false)
 {
     $iterator = new \LimitIterator($this->findAll($condition, $recursive), 0, 1);
     $iterator->rewind();
     return $iterator->current();
 }
 public function getLatestEpisode()
 {
     $iterator = new \LimitIterator(new PastEpisodeFilterIterator(new \ArrayIterator($this->buildEpisodesList())), 0, 1);
     $iterator->rewind();
     return $iterator->current();
 }
Пример #5
0
    echo $e->getMessage();
}
echo '----------------------------------- CachingIterator END ---------------------------------', '<br />';
echo '--------------------------------- LimitIterator END-----------------------------------', '<br />';
/**
 * LimitIterator 遍历一个Iterator的限定子集
 * 在__construct有两个可选参数:offset 和 count
 */
$array = array('apple', 'banana', 'cherry', 'damson', 'elderberry');
$fruits = new ArrayIterator($array);
$offset = 3;
$count = 2;
$limitIt = new LimitIterator($fruits, $offset, $count);
// 如果增加了offset,那么只有两个数,但是rewind时,节点值不会变成0,而是被截取的值offset。
// getPosition 获得当前节点的位置
$limitIt->rewind();
var_dump($limitIt->getPosition());
foreach ($limitIt as $item) {
    echo $item, '<br />';
}
echo '--------------------------------- LimitIterator START-----------------------------------', '<br />';
echo '----------------------------------- SplFileObject END ---------------------------------', '<br />';
/**
 * SplFileObject 对文本文件进行遍历
 */
$file = '/data/www/test.php';
$fileIt = new SplFileObject($file);
// 遍历获得所有的文本,按行遍历
/*foreach ($fileIt AS $item) {
    echo $item, '<br />';
}*/