MediaWiki
REL1_31
MappedIterator.php
Go to the documentation of this file.
1
<?php
28
class
MappedIterator
extends
FilterIterator {
30
protected
$vCallback
;
32
protected
$aCallback
;
34
protected
$cache
= [];
35
36
protected
$rewound
=
false
;
// boolean; whether rewind() has been called
37
53
public
function
__construct
( $iter,
$vCallback
, array
$options
= [] ) {
54
if
( is_array( $iter ) ) {
55
$baseIterator =
new
ArrayIterator( $iter );
56
} elseif ( $iter instanceof Iterator ) {
57
$baseIterator = $iter;
58
}
else
{
59
throw
new
UnexpectedValueException(
"Invalid base iterator provided."
);
60
}
61
parent::__construct( $baseIterator );
62
$this->vCallback =
$vCallback
;
63
$this->aCallback = isset(
$options
[
'accept'
] ) ?
$options
[
'accept'
] :
null
;
64
}
65
66
public
function
next
() {
67
$this->
cache
= [];
68
parent::next();
69
}
70
71
public
function
rewind
() {
72
$this->rewound =
true
;
73
$this->
cache
= [];
74
parent::rewind();
75
}
76
77
public
function
accept
() {
78
$value
= call_user_func( $this->vCallback, $this->getInnerIterator()->
current
() );
79
$ok = (
$this->aCallback
) ? call_user_func( $this->aCallback,
$value
) :
true
;
80
if
( $ok ) {
81
$this->
cache
[
'current'
] =
$value
;
82
}
83
84
return
$ok;
85
}
86
87
public
function
key
() {
88
$this->
init
();
89
90
return
parent::key();
91
}
92
93
public
function
valid
() {
94
$this->
init
();
95
96
return
parent::valid();
97
}
98
99
public
function
current
() {
100
$this->
init
();
101
if
( parent::valid() ) {
102
return
$this->
cache
[
'current'
];
103
}
else
{
104
return
null
;
// out of range
105
}
106
}
107
111
protected
function
init
() {
112
if
( !$this->rewound ) {
113
$this->
rewind
();
114
}
115
}
116
}
MappedIterator
Convenience class for generating iterators from iterators.
Definition
MappedIterator.php:28
MappedIterator\key
key()
Definition
MappedIterator.php:87
MappedIterator\$aCallback
callable $aCallback
Definition
MappedIterator.php:32
MappedIterator\accept
accept()
Definition
MappedIterator.php:77
MappedIterator\__construct
__construct( $iter, $vCallback, array $options=[])
Build an new iterator from a base iterator by having the former wrap the later, returning the result ...
Definition
MappedIterator.php:53
MappedIterator\current
current()
Definition
MappedIterator.php:99
MappedIterator\valid
valid()
Definition
MappedIterator.php:93
MappedIterator\init
init()
Obviate the usual need for rewind() before using a FilterIterator in a manual loop.
Definition
MappedIterator.php:111
MappedIterator\$rewound
$rewound
Definition
MappedIterator.php:36
MappedIterator\$cache
array $cache
Definition
MappedIterator.php:34
MappedIterator\next
next()
Definition
MappedIterator.php:66
MappedIterator\rewind
rewind()
Definition
MappedIterator.php:71
MappedIterator\$vCallback
callable $vCallback
Definition
MappedIterator.php:30
$options
null means default in associative array with keys and values unescaped Should be merged with default with a value of false meaning to suppress the attribute in associative array with keys and values unescaped & $options
Definition
hooks.txt:2001
cache
you have access to all of the normal MediaWiki so you can get a DB use the cache
Definition
maintenance.txt:55
$value
$value
Definition
styleTest.css.php:45
includes
libs
MappedIterator.php
Generated on Mon Nov 25 2024 15:34:59 for MediaWiki by
1.10.0