Completed
Push — master ( 125eb4...9a0c87 )
by Alexander
19s
created
YaLinqo/Enumerable.php 1 patch
Braces   +107 added lines, -78 removed lines patch added patch discarded remove patch
@@ -154,8 +154,9 @@  discard block
 block discarded – undo
154 154
         $selectorKey = Utils::createLambda($selectorKey, 'v,k', Functions::$key);
155 155
 
156 156
         return new self(function() use ($selectorValue, $selectorKey) {
157
-            foreach ($this as $k => $v)
158
-                yield $selectorKey($v, $k) => $selectorValue($v, $k);
157
+            foreach ($this as $k => $v) {
158
+                            yield $selectorKey($v, $k) => $selectorValue($v, $k);
159
+            }
159 160
         });
160 161
     }
161 162
 
@@ -179,13 +180,15 @@  discard block
 block discarded – undo
179 180
         $collectionSelector = Utils::createLambda($collectionSelector, 'v,k', Functions::$value);
180 181
         $resultSelectorValue = Utils::createLambda($resultSelectorValue, 'v,k1,k2', Functions::$value);
181 182
         $resultSelectorKey = Utils::createLambda($resultSelectorKey, 'v,k1,k2', false);
182
-        if ($resultSelectorKey === false)
183
-            $resultSelectorKey = Functions::increment();
183
+        if ($resultSelectorKey === false) {
184
+                    $resultSelectorKey = Functions::increment();
185
+        }
184 186
 
185 187
         return new self(function() use ($collectionSelector, $resultSelectorValue, $resultSelectorKey) {
186
-            foreach ($this as $ok => $ov)
187
-                foreach ($collectionSelector($ov, $ok) as $ik => $iv)
188
+            foreach ($this as $ok => $ov) {
189
+                            foreach ($collectionSelector($ov, $ok) as $ik => $iv)
188 190
                     yield $resultSelectorKey($iv, $ok, $ik) => $resultSelectorValue($iv, $ok, $ik);
191
+            }
189 192
         });
190 193
     }
191 194
 
@@ -201,9 +204,10 @@  discard block
 block discarded – undo
201 204
         $predicate = Utils::createLambda($predicate, 'v,k');
202 205
 
203 206
         return new self(function() use ($predicate) {
204
-            foreach ($this as $k => $v)
205
-                if ($predicate($v, $k))
207
+            foreach ($this as $k => $v) {
208
+                            if ($predicate($v, $k))
206 209
                     yield $k => $v;
210
+            }
207 211
         });
208 212
     }
209 213
 
@@ -330,9 +334,10 @@  discard block
 block discarded – undo
330 334
             $lookup = $inner->toLookup($innerKeySelector);
331 335
             foreach ($this as $ok => $ov) {
332 336
                 $key = $outerKeySelector($ov, $ok);
333
-                if (isset($lookup[$key]))
334
-                    foreach ($lookup[$key] as $iv)
337
+                if (isset($lookup[$key])) {
338
+                                    foreach ($lookup[$key] as $iv)
335 339
                         yield $resultSelectorKey($ov, $iv, $key) => $resultSelectorValue($ov, $iv, $key);
340
+                }
336 341
             }
337 342
         });
338 343
     }
@@ -391,20 +396,19 @@  discard block
 block discarded – undo
391 396
             foreach ($this as $k => $v) {
392 397
                 $result = $func($result, $v, $k);
393 398
             }
394
-        }
395
-        else {
399
+        } else {
396 400
             $assigned = false;
397 401
             foreach ($this as $k => $v) {
398 402
                 if ($assigned) {
399 403
                     $result = $func($result, $v, $k);
400
-                }
401
-                else {
404
+                } else {
402 405
                     $result = $v;
403 406
                     $assigned = true;
404 407
                 }
405 408
             }
406
-            if (!$assigned)
407
-                throw new UnexpectedValueException(Errors::NO_ELEMENTS);
409
+            if (!$assigned) {
410
+                            throw new UnexpectedValueException(Errors::NO_ELEMENTS);
411
+            }
408 412
         }
409 413
         return $result;
410 414
     }
@@ -431,13 +435,11 @@  discard block
 block discarded – undo
431 435
                 $result = $func($result, $v, $k);
432 436
                 $assigned = true;
433 437
             }
434
-        }
435
-        else {
438
+        } else {
436 439
             foreach ($this as $k => $v) {
437 440
                 if ($assigned) {
438 441
                     $result = $func($result, $v, $k);
439
-                }
440
-                else {
442
+                } else {
441 443
                     $result = $v;
442 444
                     $assigned = true;
443 445
                 }
@@ -466,8 +468,9 @@  discard block
 block discarded – undo
466 468
             $sum += $selector($v, $k);
467 469
             $count++;
468 470
         }
469
-        if ($count === 0)
470
-            throw new UnexpectedValueException(Errors::NO_ELEMENTS);
471
+        if ($count === 0) {
472
+                    throw new UnexpectedValueException(Errors::NO_ELEMENTS);
473
+        }
471 474
         return $sum / $count;
472 475
     }
473 476
 
@@ -486,15 +489,17 @@  discard block
 block discarded – undo
486 489
     {
487 490
         $it = $this->getIterator();
488 491
 
489
-        if ($it instanceof Countable && $predicate === null)
490
-            return count($it);
492
+        if ($it instanceof Countable && $predicate === null) {
493
+                    return count($it);
494
+        }
491 495
 
492 496
         $predicate = Utils::createLambda($predicate, 'v,k', Functions::$value);
493 497
         $count = 0;
494 498
 
495
-        foreach ($it as $k => $v)
496
-            if ($predicate($v, $k))
499
+        foreach ($it as $k => $v) {
500
+                    if ($predicate($v, $k))
497 501
                 $count++;
502
+        }
498 503
         return $count;
499 504
     }
500 505
 
@@ -519,8 +524,9 @@  discard block
 block discarded – undo
519 524
             $max = max($max, $selector($v, $k));
520 525
             $assigned = true;
521 526
         }
522
-        if (!$assigned)
523
-            throw new UnexpectedValueException(Errors::NO_ELEMENTS);
527
+        if (!$assigned) {
528
+                    throw new UnexpectedValueException(Errors::NO_ELEMENTS);
529
+        }
524 530
         return $max;
525 531
     }
526 532
 
@@ -541,8 +547,9 @@  discard block
 block discarded – undo
541 547
         $comparer = Utils::createLambda($comparer, 'a,b', Functions::$compareStrict);
542 548
         $enum = $this;
543 549
 
544
-        if ($selector !== null)
545
-            $enum = $enum->select($selector);
550
+        if ($selector !== null) {
551
+                    $enum = $enum->select($selector);
552
+        }
546 553
         return $enum->aggregate(function($a, $b) use ($comparer) { return $comparer($a, $b) > 0 ? $a : $b; });
547 554
     }
548 555
 
@@ -567,8 +574,9 @@  discard block
 block discarded – undo
567 574
             $min = min($min, $selector($v, $k));
568 575
             $assigned = true;
569 576
         }
570
-        if (!$assigned)
571
-            throw new UnexpectedValueException(Errors::NO_ELEMENTS);
577
+        if (!$assigned) {
578
+                    throw new UnexpectedValueException(Errors::NO_ELEMENTS);
579
+        }
572 580
         return $min;
573 581
     }
574 582
 
@@ -589,8 +597,9 @@  discard block
 block discarded – undo
589 597
         $comparer = Utils::createLambda($comparer, 'a,b', Functions::$compareStrict);
590 598
         $enum = $this;
591 599
 
592
-        if ($selector !== null)
593
-            $enum = $enum->select($selector);
600
+        if ($selector !== null) {
601
+                    $enum = $enum->select($selector);
602
+        }
594 603
         return $enum->aggregate(function($a, $b) use ($comparer) { return $comparer($a, $b) < 0 ? $a : $b; });
595 604
     }
596 605
 
@@ -610,8 +619,9 @@  discard block
 block discarded – undo
610 619
         $selector = Utils::createLambda($selector, 'v,k', Functions::$value);
611 620
 
612 621
         $sum = 0;
613
-        foreach ($this as $k => $v)
614
-            $sum += $selector($v, $k);
622
+        foreach ($this as $k => $v) {
623
+                    $sum += $selector($v, $k);
624
+        }
615 625
         return $sum;
616 626
     }
617 627
 
@@ -632,8 +642,9 @@  discard block
 block discarded – undo
632 642
         $predicate = Utils::createLambda($predicate, 'v,k');
633 643
 
634 644
         foreach ($this as $k => $v) {
635
-            if (!$predicate($v, $k))
636
-                return false;
645
+            if (!$predicate($v, $k)) {
646
+                            return false;
647
+            }
637 648
         }
638 649
         return true;
639 650
     }
@@ -655,15 +666,16 @@  discard block
 block discarded – undo
655 666
 
656 667
         if ($predicate) {
657 668
             foreach ($this as $k => $v) {
658
-                if ($predicate($v, $k))
659
-                    return true;
669
+                if ($predicate($v, $k)) {
670
+                                    return true;
671
+                }
660 672
             }
661 673
             return false;
662
-        }
663
-        else {
674
+        } else {
664 675
             $it = $this->getIterator();
665
-            if ($it instanceof Countable)
666
-                return count($it) > 0;
676
+            if ($it instanceof Countable) {
677
+                            return count($it) > 0;
678
+            }
667 679
             $it->rewind();
668 680
             return $it->valid();
669 681
         }
@@ -718,8 +730,9 @@  discard block
 block discarded – undo
718 730
     public function contains($value): bool
719 731
     {
720 732
         foreach ($this as $v) {
721
-            if ($v === $value)
722
-                return true;
733
+            if ($v === $value) {
734
+                            return true;
735
+            }
723 736
         }
724 737
         return false;
725 738
     }
@@ -743,8 +756,9 @@  discard block
 block discarded – undo
743 756
             $set = [];
744 757
             foreach ($this as $k => $v) {
745 758
                 $key = $keySelector($v, $k);
746
-                if (isset($set[$key]))
747
-                    continue;
759
+                if (isset($set[$key])) {
760
+                                    continue;
761
+                }
748 762
                 $set[$key] = true;
749 763
                 yield $k => $v;
750 764
             }
@@ -777,8 +791,9 @@  discard block
 block discarded – undo
777 791
             }
778 792
             foreach ($this as $k => $v) {
779 793
                 $key = $keySelector($v, $k);
780
-                if (isset($set[$key]))
781
-                    continue;
794
+                if (isset($set[$key])) {
795
+                                    continue;
796
+                }
782 797
                 $set[$key] = true;
783 798
                 yield $k => $v;
784 799
             }
@@ -811,8 +826,9 @@  discard block
 block discarded – undo
811 826
             }
812 827
             foreach ($this as $k => $v) {
813 828
                 $key = $keySelector($v, $k);
814
-                if (!isset($set[$key]))
815
-                    continue;
829
+                if (!isset($set[$key])) {
830
+                                    continue;
831
+                }
816 832
                 unset($set[$key]);
817 833
                 yield $k => $v;
818 834
             }
@@ -861,15 +877,17 @@  discard block
 block discarded – undo
861 877
             $set = [];
862 878
             foreach ($this as $k => $v) {
863 879
                 $key = $keySelector($v, $k);
864
-                if (isset($set[$key]))
865
-                    continue;
880
+                if (isset($set[$key])) {
881
+                                    continue;
882
+                }
866 883
                 $set[$key] = true;
867 884
                 yield $k => $v;
868 885
             }
869 886
             foreach ($other as $k => $v) {
870 887
                 $key = $keySelector($v, $k);
871
-                if (isset($set[$key]))
872
-                    continue;
888
+                if (isset($set[$key])) {
889
+                                    continue;
890
+                }
873 891
                 $set[$key] = true;
874 892
                 yield $k => $v;
875 893
             }
@@ -894,12 +912,14 @@  discard block
 block discarded – undo
894 912
     {
895 913
         /** @var $it Iterator|ArrayIterator */
896 914
         $it = $this->getIterator();
897
-        if ($it instanceof ArrayIterator)
898
-            return $it->getArrayCopy();
915
+        if ($it instanceof ArrayIterator) {
916
+                    return $it->getArrayCopy();
917
+        }
899 918
 
900 919
         $array = [];
901
-        foreach ($it as $k => $v)
902
-            $array[$k] = $v;
920
+        foreach ($it as $k => $v) {
921
+                    $array[$k] = $v;
922
+        }
903 923
         return $array;
904 924
     }
905 925
 
@@ -926,8 +946,9 @@  discard block
 block discarded – undo
926 946
     protected function toArrayDeepProc($enum): array
927 947
     {
928 948
         $array = [];
929
-        foreach ($enum as $k => $v)
930
-            $array[$k ?? ''] = $v instanceof Traversable || is_array($v) ? $this->toArrayDeepProc($v) : $v;
949
+        foreach ($enum as $k => $v) {
950
+                    $array[$k ?? ''] = $v instanceof Traversable || is_array($v) ? $this->toArrayDeepProc($v) : $v;
951
+        }
931 952
         return $array;
932 953
     }
933 954
 
@@ -945,12 +966,14 @@  discard block
 block discarded – undo
945 966
     {
946 967
         /** @var $it Iterator|ArrayIterator */
947 968
         $it = $this->getIterator();
948
-        if ($it instanceof ArrayIterator)
949
-            return array_values($it->getArrayCopy());
969
+        if ($it instanceof ArrayIterator) {
970
+                    return array_values($it->getArrayCopy());
971
+        }
950 972
 
951 973
         $array = [];
952
-        foreach ($it as $v)
953
-            $array[] = $v;
974
+        foreach ($it as $v) {
975
+                    $array[] = $v;
976
+        }
954 977
         return $array;
955 978
     }
956 979
 
@@ -977,8 +1000,9 @@  discard block
 block discarded – undo
977 1000
     protected function toListDeepProc($enum): array
978 1001
     {
979 1002
         $array = [];
980
-        foreach ($enum as $v)
981
-            $array[] = $v instanceof Traversable || is_array($v) ? $this->toListDeepProc($v) : $v;
1003
+        foreach ($enum as $v) {
1004
+                    $array[] = $v instanceof Traversable || is_array($v) ? $this->toListDeepProc($v) : $v;
1005
+        }
982 1006
         return $array;
983 1007
     }
984 1008
 
@@ -997,8 +1021,9 @@  discard block
 block discarded – undo
997 1021
         $valueSelector = Utils::createLambda($valueSelector, 'v,k', Functions::$value);
998 1022
 
999 1023
         $dic = [];
1000
-        foreach ($this as $k => $v)
1001
-            $dic[$keySelector($v, $k)] = $valueSelector($v, $k);
1024
+        foreach ($this as $k => $v) {
1025
+                    $dic[$keySelector($v, $k)] = $valueSelector($v, $k);
1026
+        }
1002 1027
         return $dic;
1003 1028
     }
1004 1029
 
@@ -1017,8 +1042,9 @@  discard block
 block discarded – undo
1017 1042
     {
1018 1043
         // TODO: Switch to JSON_THROW_ON_ERROR in PHP 8.0+
1019 1044
         $result = json_encode($this->toArrayDeep(), $options, $depth);
1020
-        if ($result === false)
1021
-            throw new UnexpectedValueException(json_last_error_msg());
1045
+        if ($result === false) {
1046
+                    throw new UnexpectedValueException(json_last_error_msg());
1047
+        }
1022 1048
         return $result;
1023 1049
     }
1024 1050
 
@@ -1037,8 +1063,9 @@  discard block
 block discarded – undo
1037 1063
         $valueSelector = Utils::createLambda($valueSelector, 'v,k', Functions::$value);
1038 1064
 
1039 1065
         $lookup = [];
1040
-        foreach ($this as $k => $v)
1041
-            $lookup[$keySelector($v, $k)][] = $valueSelector($v, $k);
1066
+        foreach ($this as $k => $v) {
1067
+                    $lookup[$keySelector($v, $k)][] = $valueSelector($v, $k);
1068
+        }
1042 1069
         return $lookup;
1043 1070
     }
1044 1071
 
@@ -1080,8 +1107,9 @@  discard block
 block discarded – undo
1080 1107
         $valueSelector = Utils::createLambda($valueSelector, 'v,k', Functions::$value);
1081 1108
 
1082 1109
         $obj = new stdClass();
1083
-        foreach ($this as $k => $v)
1084
-            $obj->{$propertySelector($v, $k)} = $valueSelector($v, $k);
1110
+        foreach ($this as $k => $v) {
1111
+                    $obj->{$propertySelector($v, $k)} = $valueSelector($v, $k);
1112
+        }
1085 1113
         return $obj;
1086 1114
     }
1087 1115
 
@@ -1151,8 +1179,9 @@  discard block
 block discarded – undo
1151 1179
     {
1152 1180
         $action = Utils::createLambda($action, 'v,k', Functions::$blank);
1153 1181
 
1154
-        foreach ($this as $k => $v)
1155
-            $action($v, $k);
1182
+        foreach ($this as $k => $v) {
1183
+                    $action($v, $k);
1184
+        }
1156 1185
     }
1157 1186
 
1158 1187
     /**
Please login to merge, or discard this patch.
YaLinqo/Utils.php 2 patches
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -42,8 +42,8 @@  discard block
 block discarded – undo
42 42
     public static function init()
43 43
     {
44 44
         self::$lambdaCache = [
45
-            '$v' => [ 'v,k' => Functions::$value ],
46
-            '$k' => [ 'v,k' => Functions::$key ],
45
+            '$v' => ['v,k' => Functions::$value],
46
+            '$k' => ['v,k' => Functions::$key],
47 47
         ];
48 48
     }
49 49
 
@@ -150,7 +150,7 @@  discard block
 block discarded – undo
150 150
                 $code = substr($closure, $posArrow + 3);
151 151
             }
152 152
             else {
153
-                $args = '$' . str_replace(',', '=null,$', $closureArgs) . '=null';
153
+                $args = '$'.str_replace(',', '=null,$', $closureArgs).'=null';
154 154
                 $code = $closure;
155 155
             }
156 156
             $code = trim($code, " \r\n\t");
@@ -160,7 +160,7 @@  discard block
 block discarded – undo
160 160
                 $fun = eval("return function($args) { $code };");
161 161
             }
162 162
             catch (ParseError $e) {
163
-                throw new InvalidArgumentException(self::ERROR_CANNOT_PARSE_LAMBDA . " " . $e->getMessage());
163
+                throw new InvalidArgumentException(self::ERROR_CANNOT_PARSE_LAMBDA." ".$e->getMessage());
164 164
             }
165 165
             self::$lambdaCache[$closure][$closureArgs] = $fun;
166 166
             return $fun;
Please login to merge, or discard this patch.
Braces   +34 added lines, -28 removed lines patch added patch discarded remove patch
@@ -59,16 +59,20 @@  discard block
 block discarded – undo
59 59
     public static function createLambda($closure, string $closureArgs, $default = null)
60 60
     {
61 61
         if ($closure === null) {
62
-            if ($default === null)
63
-                throw new InvalidArgumentException(self::ERROR_CLOSURE_NULL);
62
+            if ($default === null) {
63
+                            throw new InvalidArgumentException(self::ERROR_CLOSURE_NULL);
64
+            }
64 65
             return $default;
65 66
         }
66
-        if ($closure instanceof Closure)
67
-            return $closure;
68
-        if (is_string($closure) && ($function = self::createLambdaFromString($closure, $closureArgs)))
69
-            return $function;
70
-        if (is_callable($closure))
71
-            return $closure;
67
+        if ($closure instanceof Closure) {
68
+                    return $closure;
69
+        }
70
+        if (is_string($closure) && ($function = self::createLambdaFromString($closure, $closureArgs))) {
71
+                    return $function;
72
+        }
73
+        if (is_callable($closure)) {
74
+                    return $closure;
75
+        }
72 76
         throw new InvalidArgumentException(self::ERROR_CLOSURE_NOT_CALLABLE);
73 77
     }
74 78
 
@@ -86,8 +90,7 @@  discard block
 block discarded – undo
86 90
         if ($closure === null) {
87 91
             $isReversed = false;
88 92
             return $sortOrder === SORT_DESC ? Functions::$compareStrictReversed : Functions::$compareStrict;
89
-        }
90
-        elseif (is_int($closure)) {
93
+        } elseif (is_int($closure)) {
91 94
             switch ($closure) {
92 95
                 case SORT_REGULAR:
93 96
                     return Functions::$compareStrict;
@@ -119,16 +122,19 @@  discard block
 block discarded – undo
119 122
      */
120 123
     public static function lambdaToSortFlagsAndOrder($closure, &$sortOrder)
121 124
     {
122
-        if ($closure === null)
123
-            $closure = '';
124
-        if ($sortOrder !== SORT_ASC && $sortOrder !== SORT_DESC)
125
-            $sortOrder = $sortOrder ? SORT_DESC : SORT_ASC;
126
-        if (is_int($closure))
127
-            return $closure;
128
-        elseif (is_string($closure) && isset(self::$compareFunctionToSortFlags[$closure]))
129
-            return self::$compareFunctionToSortFlags[$closure];
130
-        else
131
-            return null;
125
+        if ($closure === null) {
126
+                    $closure = '';
127
+        }
128
+        if ($sortOrder !== SORT_ASC && $sortOrder !== SORT_DESC) {
129
+                    $sortOrder = $sortOrder ? SORT_DESC : SORT_ASC;
130
+        }
131
+        if (is_int($closure)) {
132
+                    return $closure;
133
+        } elseif (is_string($closure) && isset(self::$compareFunctionToSortFlags[$closure])) {
134
+                    return self::$compareFunctionToSortFlags[$closure];
135
+        } else {
136
+                    return null;
137
+        }
132 138
     }
133 139
 
134 140
     /**
@@ -142,24 +148,24 @@  discard block
 block discarded – undo
142 148
     {
143 149
         $posDollar = strpos($closure, '$');
144 150
         if ($posDollar !== false) {
145
-            if (isset(self::$lambdaCache[$closure][$closureArgs]))
146
-                return self::$lambdaCache[$closure][$closureArgs];
151
+            if (isset(self::$lambdaCache[$closure][$closureArgs])) {
152
+                            return self::$lambdaCache[$closure][$closureArgs];
153
+            }
147 154
             $posArrow = strpos($closure, '==>', $posDollar);
148 155
             if ($posArrow !== false) {
149 156
                 $args = trim(substr($closure, 0, $posArrow), "() \r\n\t");
150 157
                 $code = substr($closure, $posArrow + 3);
151
-            }
152
-            else {
158
+            } else {
153 159
                 $args = '$' . str_replace(',', '=null,$', $closureArgs) . '=null';
154 160
                 $code = $closure;
155 161
             }
156 162
             $code = trim($code, " \r\n\t");
157
-            if (strlen($code) > 0 && $code[0] != '{')
158
-                $code = "return {$code};";
163
+            if (strlen($code) > 0 && $code[0] != '{') {
164
+                            $code = "return {$code};";
165
+            }
159 166
             try {
160 167
                 $fun = eval("return function($args) { $code };");
161
-            }
162
-            catch (ParseError $e) {
168
+            } catch (ParseError $e) {
163 169
                 throw new InvalidArgumentException(self::ERROR_CANNOT_PARSE_LAMBDA . " " . $e->getMessage());
164 170
             }
165 171
             self::$lambdaCache[$closure][$closureArgs] = $fun;
Please login to merge, or discard this patch.