Search moodle.org's
Developer Documentation

See Release Notes
Long Term Support Release

  • Bug fixes for general core bugs in 3.9.x will end* 10 May 2021 (12 months).
  • Bug fixes for security issues in 3.9.x will end* 8 May 2023 (36 months).
  • PHP version: minimum PHP 7.2.0 Note: minimum PHP version has increased since Moodle 3.8. PHP 7.3.x and 7.4.x are supported too.

Differences Between: [Versions 39 and 311] [Versions 39 and 400] [Versions 39 and 401]

(no description)

File Size: 175 lines (4 kb)
Included or required:0 times
Referenced: 0 times
Includes or requires: 0 files

Defines 1 class

CachingIterator:: (10 methods):
  __construct()
  count()
  current()
  key()
  next()
  rewind()
  valid()
  exhaustIterator()
  storeCurrentItem()
  wrapTraversable()


Class: CachingIterator  - X-Ref

Iterator for wrapping a Traversable and caching its results.

By caching results, this iterators allows a Traversable to be counted and
rewound multiple times, even if the wrapped object does not natively support
those operations (e.g. MongoDB\Driver\Cursor).

__construct(Traversable $traversable)   X-Ref
Initialize the iterator and stores the first item in the cache. This
effectively rewinds the Traversable and the wrapping Generator, which
will execute up to its first yield statement. Additionally, this mimics
behavior of the SPL iterators and allows users to omit an explicit call
to rewind() before using the other methods.

param: Traversable $traversable

count()   X-Ref

return: integer

current()   X-Ref

return: mixed

key()   X-Ref

return: mixed

next()   X-Ref

return: void

rewind()   X-Ref

return: void

valid()   X-Ref

return: boolean

exhaustIterator()   X-Ref
Ensures that the inner iterator is fully consumed and cached.


storeCurrentItem()   X-Ref
Stores the current item in the cache.


wrapTraversable(Traversable $traversable)   X-Ref
Wraps the Traversable with a Generator.

param: Traversable $traversable
return: Generator