PluginProbe ʕ •ᴥ•ʔ
MailPoet – Newsletters, Email Marketing, and Automation / 5.35.1
MailPoet – Newsletters, Email Marketing, and Automation v5.35.1
5.36.1 5.36.0 5.35.1 5.35.0 5.34.3 5.34.2 5.34.1 5.34.0 5.33.1 5.33.0 5.32.0 5.31.0 5.30.0 5.29.0 5.28.1 5.28.0 5.27.0 5.26.0 5.26.1 5.25.0 5.24.0 4.43.0 4.43.1 4.44.0 4.44.1 4.45.0 4.46.0 4.47.0 4.48.0 4.48.1 4.48.2 4.49.0 4.49.1 4.5.0 4.5.1 4.5.2 4.50.0 4.50.1 4.51.0 4.51.1 4.51.2 4.52.0 4.53.0 4.54.0 4.55.0 4.56.0 4.57.0 4.58.0 4.58.1 4.58.2 4.6.0 4.6.1 4.6.2 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 5.0.0 5.0.1 5.0.2 5.1.0 5.1.1 5.10.0 5.10.1 5.11.0 5.12.0 5.12.1 5.12.10 5.12.11 5.12.12 5.12.13 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.13.0 5.13.1 5.13.2 5.14.0 5.14.1 5.14.2 5.14.3 5.15.0 5.15.1 5.16.0 5.16.1 5.16.2 5.16.3 5.16.4 5.17.0 5.17.1 5.17.2 5.17.3 5.17.4 5.17.5 5.17.6 5.18.0 5.19.0 5.2.0 5.2.1 5.2.2 5.2.3 5.20.0 5.21.0 5.21.1 5.21.2 5.21.3 5.22.0 5.22.1 5.22.2 5.22.3 5.22.4 5.23.0 5.23.1 5.23.2 5.3.0 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.3.6 5.3.7 5.4.0 5.4.1 5.4.2 5.5.0 5.5.1 5.5.2 5.6.0 5.6.1 5.6.2 5.6.3 5.6.4 5.7.0 5.7.1 5.8.0 5.8.1 5.9.0 3.0.0-beta.15 3.7.1 3.0.0-beta.16 3.7.2 3.0.0-beta.17 3.7.3 3.0.0-beta.18 3.7.4 3.0.0-beta.19 3.7.5 3.0.0-beta.2 3.7.6 3.0.0-beta.20 3.7.8 3.0.0-beta.21 3.70.0 3.0.0-beta.22 3.71.0 3.0.0-beta.23 3.71.1 3.0.0-beta.23.1 3.71.2 3.0.0-beta.23.2 3.71.3 3.0.0-beta.24 3.72.0 3.0.0-beta.25 3.73.0 3.0.0-beta.26 3.73.1 3.0.0-beta.27 3.73.2 3.0.0-beta.28 3.74.0 3.0.0-beta.29 3.74.1 3.0.0-beta.3 3.74.2 3.0.0-beta.30 3.74.3 3.0.0-beta.31 3.75.0 3.0.0-beta.32 3.75.1 3.0.0-beta.33 3.76.0 3.0.0-beta.33.1 3.77.0 3.0.0-beta.34.0.0 3.77.1 3.0.0-beta.36.0.0 3.78.0 3.0.0-beta.36.0.1 3.79.0 3.0.0-beta.36.2.0 3.8 3.0.0-beta.36.3.0 3.8.1 3.0.0-beta.36.3.1 3.8.2 3.0.0-beta.37.0.0 3.8.3 3.0.0-beta.4 3.8.4 3.0.0-beta.5 3.8.5 3.0.0-beta.6 3.8.6 3.0.0-beta.7 3.80.0 3.0.0-beta.7.1 3.81.0 3.0.0-beta.8 3.82.0 3.0.0-beta.9 3.83.0 3.0.0-rc.1.0.0 3.84.0 3.0.0-rc.1.0.1 3.84.1 3.0.0-rc.1.0.2 3.85.0 3.0.0-rc.1.0.3 3.85.1 3.0.0-rc.1.0.4 3.86.0 3.0.0-rc.2.0.0 3.87.0 3.0.0-rc.2.0.1 3.87.1 3.0.0-rc.2.0.2 3.87.2 3.0.0-rc.2.0.3 3.88.0 3.0.1 3.88.1 3.0.2 3.88.2 3.0.3 3.89.0 3.0.4 3.89.1 3.0.5 3.89.2 3.0.6 3.89.3 3.0.7 3.89.4 3.0.8 3.9.0 3.0.9 3.9.1 3.1.0 3.90.0 3.10 3.90.1 3.10.1 3.90.2 3.100.0 3.91.0 3.100.1 3.91.1 3.100.2 3.92.0 3.101.0 3.92.1 3.101.1 3.93.0 3.102.0 3.93.1 3.102.1 3.94.0 3.103.0 3.95.0 3.103.1 3.95.1 3.11.0 3.96.0 3.11.1 3.96.1 3.11.2 3.97.0 3.11.3 3.98.0 3.11.4 3.98.1 3.11.5 3.99.0 3.12.0 3.99.1 3.12.1 4.0.0 3.13.0 4.0.1 3.14.0 4.1.0 3.14.1 4.1.1 3.15.0 4.10.0 3.16.0 4.11.0 3.16.1 4.11.1 3.16.2 4.12.0 3.16.3 4.12.1 3.17.0 4.12.2 3.17.1 4.13.0 3.17.2 4.14.0 3.18.0 4.15.0 3.18.1 4.16.0 3.18.2 4.17.0 3.19.0 4.17.1 3.19.1 4.18.0 3.19.2 4.18.1 3.19.3 4.19.0 3.2.0 4.2.0 3.2.1 4.20.0 3.2.2 4.20.1 3.2.3 4.20.2 3.2.4 4.21.0 3.2.5 4.22.0 3.20.0 4.22.1 3.21.0 4.22.2 3.21.1 4.23.0 3.22.0 4.24.0 3.23.0 4.25.0 3.23.1 4.26.0 3.23.2 4.26.1 3.24.0 4.27.0 3.25.0 4.28.0 3.25.1 4.29.0 3.26.0 4.3.0 3.26.1 4.3.1 3.27.0 4.30.0 3.28.0 4.31.0 3.29.0 4.31.1 3.3.0 4.32.0 3.3.1 4.33.0 3.3.2 4.34.0 3.3.3 4.35.0 3.3.4 4.35.1 3.3.5 4.36.0 3.3.6 4.37.0 3.30.0 4.38.0 3.31.0 4.39.0 3.31.1 4.4.0 3.32.0 4.40.0 3.32.1 4.41.0 3.32.2 4.41.1 3.33.0 4.41.2 3.34.0 4.41.3 3.34.1 4.42.0 3.34.2 4.42.1 3.34.3 3.34.4 3.35.0 3.35.1 3.35.3 3.35.4 3.36.0 3.37.0 3.37.1 3.37.2 3.37.3 3.38.0 3.38.1 3.39.0 3.39.1 3.39.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.40.0 3.40.1 3.41.0 3.41.1 3.41.2 3.42.0 3.42.1 3.42.2 3.42.3 3.43.0 3.43.1 3.44.0 3.45.0 3.45.1 3.46.0 3.46.1 3.46.10 3.46.11 3.46.12 3.46.13 3.46.14 3.46.2 3.46.3 3.46.4 3.46.5 3.46.6 3.46.7 3.46.8 3.46.9 3.47.0 3.47.1 3.47.10 3.47.11 3.47.2 3.47.3 3.47.5 3.47.6 3.47.7 3.47.9 3.48.0 3.48.1 3.49.0 3.49.1 3.5.0 3.5.1 3.50.0 3.51.0 3.51.1 3.51.2 3.52.0 3.53.0 3.54.0 3.54.1 3.54.2 3.54.3 3.55.0 3.55.1 3.56.0 3.56.1 3.56.2 3.57.0 3.57.1 3.58.0 3.59.0 3.59.1 3.59.2 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.60.0 3.60.1 3.60.10 3.60.11 3.60.12 3.60.2 3.60.3 3.60.4 3.60.6 3.60.7 3.60.8 3.60.9 3.61.0 3.62.0 3.62.1 3.63.0 3.64.0 3.64.1 3.64.2 3.64.3 3.65.0 trunk 3.65.1 3.0.0 3.66.0 3.0.0-beta.1 3.67.0 3.0.0-beta.10 3.67.1 3.0.0-beta.11 3.68.0 3.0.0-beta.12 3.69.0 3.0.0-beta.13 3.69.1 3.0.0-beta.14 3.7.0
mailpoet / vendor-prefixed / doctrine / collections / lib / Doctrine / Common / Collections / ArrayCollection.php
mailpoet / vendor-prefixed / doctrine / collections / lib / Doctrine / Common / Collections Last commit date
Expr 9 months ago AbstractLazyCollection.php 9 months ago ArrayCollection.php 4 years ago Collection.php 9 months ago Criteria.php 9 months ago ExpressionBuilder.php 4 years ago ReadableCollection.php 9 months ago Selectable.php 4 years ago index.php 3 years ago
ArrayCollection.php
226 lines
1 <?php
2 namespace MailPoetVendor\Doctrine\Common\Collections;
3 if (!defined('ABSPATH')) exit;
4 use ArrayIterator;
5 use Closure;
6 use MailPoetVendor\Doctrine\Common\Collections\Expr\ClosureExpressionVisitor;
7 use ReturnTypeWillChange;
8 use Traversable;
9 use function array_filter;
10 use function array_key_exists;
11 use function array_keys;
12 use function array_map;
13 use function array_reverse;
14 use function array_search;
15 use function array_slice;
16 use function array_values;
17 use function count;
18 use function current;
19 use function end;
20 use function in_array;
21 use function key;
22 use function next;
23 use function reset;
24 use function spl_object_hash;
25 use function uasort;
26 use const ARRAY_FILTER_USE_BOTH;
27 class ArrayCollection implements Collection, Selectable
28 {
29 private $elements;
30 public function __construct(array $elements = [])
31 {
32 $this->elements = $elements;
33 }
34 public function toArray()
35 {
36 return $this->elements;
37 }
38 public function first()
39 {
40 return reset($this->elements);
41 }
42 protected function createFrom(array $elements)
43 {
44 return new static($elements);
45 }
46 public function last()
47 {
48 return end($this->elements);
49 }
50 public function key()
51 {
52 return key($this->elements);
53 }
54 public function next()
55 {
56 return next($this->elements);
57 }
58 public function current()
59 {
60 return current($this->elements);
61 }
62 public function remove($key)
63 {
64 if (!isset($this->elements[$key]) && !array_key_exists($key, $this->elements)) {
65 return null;
66 }
67 $removed = $this->elements[$key];
68 unset($this->elements[$key]);
69 return $removed;
70 }
71 public function removeElement($element)
72 {
73 $key = array_search($element, $this->elements, \true);
74 if ($key === \false) {
75 return \false;
76 }
77 unset($this->elements[$key]);
78 return \true;
79 }
80 #[\ReturnTypeWillChange]
81 public function offsetExists($offset)
82 {
83 return $this->containsKey($offset);
84 }
85 #[\ReturnTypeWillChange]
86 public function offsetGet($offset)
87 {
88 return $this->get($offset);
89 }
90 #[\ReturnTypeWillChange]
91 public function offsetSet($offset, $value)
92 {
93 if (!isset($offset)) {
94 $this->add($value);
95 return;
96 }
97 $this->set($offset, $value);
98 }
99 #[\ReturnTypeWillChange]
100 public function offsetUnset($offset)
101 {
102 $this->remove($offset);
103 }
104 public function containsKey($key)
105 {
106 return isset($this->elements[$key]) || array_key_exists($key, $this->elements);
107 }
108 public function contains($element)
109 {
110 return in_array($element, $this->elements, \true);
111 }
112 public function exists(Closure $p)
113 {
114 foreach ($this->elements as $key => $element) {
115 if ($p($key, $element)) {
116 return \true;
117 }
118 }
119 return \false;
120 }
121 public function indexOf($element)
122 {
123 return array_search($element, $this->elements, \true);
124 }
125 public function get($key)
126 {
127 return $this->elements[$key] ?? null;
128 }
129 public function getKeys()
130 {
131 return array_keys($this->elements);
132 }
133 public function getValues()
134 {
135 return array_values($this->elements);
136 }
137 #[\ReturnTypeWillChange]
138 public function count()
139 {
140 return count($this->elements);
141 }
142 public function set($key, $value)
143 {
144 $this->elements[$key] = $value;
145 }
146 public function add($element)
147 {
148 $this->elements[] = $element;
149 return \true;
150 }
151 public function isEmpty()
152 {
153 return empty($this->elements);
154 }
155 #[\ReturnTypeWillChange]
156 public function getIterator()
157 {
158 return new ArrayIterator($this->elements);
159 }
160 public function map(Closure $func)
161 {
162 return $this->createFrom(array_map($func, $this->elements));
163 }
164 public function filter(Closure $p)
165 {
166 return $this->createFrom(array_filter($this->elements, $p, ARRAY_FILTER_USE_BOTH));
167 }
168 public function forAll(Closure $p)
169 {
170 foreach ($this->elements as $key => $element) {
171 if (!$p($key, $element)) {
172 return \false;
173 }
174 }
175 return \true;
176 }
177 public function partition(Closure $p)
178 {
179 $matches = $noMatches = [];
180 foreach ($this->elements as $key => $element) {
181 if ($p($key, $element)) {
182 $matches[$key] = $element;
183 } else {
184 $noMatches[$key] = $element;
185 }
186 }
187 return [$this->createFrom($matches), $this->createFrom($noMatches)];
188 }
189 public function __toString()
190 {
191 return self::class . '@' . spl_object_hash($this);
192 }
193 public function clear()
194 {
195 $this->elements = [];
196 }
197 public function slice($offset, $length = null)
198 {
199 return array_slice($this->elements, $offset, $length, \true);
200 }
201 public function matching(Criteria $criteria)
202 {
203 $expr = $criteria->getWhereExpression();
204 $filtered = $this->elements;
205 if ($expr) {
206 $visitor = new ClosureExpressionVisitor();
207 $filter = $visitor->dispatch($expr);
208 $filtered = array_filter($filtered, $filter);
209 }
210 $orderings = $criteria->getOrderings();
211 if ($orderings) {
212 $next = null;
213 foreach (array_reverse($orderings) as $field => $ordering) {
214 $next = ClosureExpressionVisitor::sortByField($field, $ordering === Criteria::DESC ? -1 : 1, $next);
215 }
216 uasort($filtered, $next);
217 }
218 $offset = $criteria->getFirstResult();
219 $length = $criteria->getMaxResults();
220 if ($offset || $length) {
221 $filtered = array_slice($filtered, (int) $offset, $length);
222 }
223 return $this->createFrom($filtered);
224 }
225 }
226