PluginProbe ʕ •ᴥ•ʔ
WPML Multilingual & Multicurrency for WooCommerce / 5.5.7
WPML Multilingual & Multicurrency for WooCommerce v5.5.7
5.5.7 5.3.8 5.3.9 5.4.3 5.4.4 5.4.5 5.5.1 5.5.1.1 5.5.2.2 5.5.2.3 5.5.3 5.5.3.1 5.5.4 5.5.5 5.5.6 trunk 0.9 1.0 1.1 1.2 1.3 1.4 1.5 2.0 2.2 2.3 2.3.1 2.3.2 3.0 3.0.1 3.1 3.2 3.2.1 3.2.2 3.3 3.3.1 3.3.2 3.3.3 3.3.4 3.4 3.4.1 3.4.2 3.4.3 3.5 3.5.1 3.5.2 3.5.3 3.5.4 3.5.5 3.6 3.6.1 3.6.10 3.6.11 3.6.2 3.6.3 3.6.4 3.6.5 3.6.5.1 3.6.6 3.6.7 3.6.8 3.6.9 3.7 3.7.1 3.7.10 3.7.11 3.7.12 3.7.13 3.7.14 3.7.15 3.7.16 3.7.2 3.7.3 3.7.4 3.7.5 3.7.6 3.7.7 3.7.8 3.7.9 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.8.6 3.9.0 3.9.1 3.9.1.1 3.9.2 3.9.3 3.9.4 3.9.5 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.10.4 4.11.2 4.11.3.2 4.11.5 4.11.6 4.12.1 4.12.4 4.12.5 4.12.6 4.2.0 4.2.0.1 4.2.1 4.2.1.1 4.2.10 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.7.1 4.2.8 4.2.8.1 4.2.9 4.3.0 4.3.1 4.3.2 4.3.2.1 4.3.3 4.3.4 4.3.5 4.3.6 4.3.7 4.4.0 4.4.1 4.4.2 4.4.2.1 4.5.0 4.6.0 4.6.1 4.6.2 4.6.2.1 4.6.3 4.6.5 4.6.6 4.6.7 4.7.0 4.7.1 4.7.2 4.7.3 4.7.4 4.7.5 4.7.6 4.7.7 4.7.8 4.7.9 4.8.0 4.9.0 4.9.1 5.0.1 5.0.2 5.1.1 5.1.2 5.1.3 5.2.0 5.2.1 5.3.2 5.3.3.1 5.3.4 5.3.5 5.3.6 5.3.7
woocommerce-multilingual / vendor / otgs / installer / includes / utilities / Collection.php
woocommerce-multilingual / vendor / otgs / installer / includes / utilities Last commit date
Collect 1 month ago FP 1 month ago UUID 1 month ago Collection.php 1 month ago
Collection.php
147 lines
1 <?php
2
3 namespace OTGS\Installer;
4
5 class Collection {
6 private $array;
7
8 protected $items = [];
9
10 private function __construct( array $array ) {
11 $this->array = $array;
12 }
13
14 public static function of( array $array ) {
15 return new static( $array );
16 }
17
18 public function filter( callable $fn ) {
19 return self::of( array_filter( $this->array, $fn ) );
20 }
21
22 public function map( callable $fn ) {
23 $keys = array_keys( $this->array );
24
25 $items = array_map( $fn, $this->array, $keys );
26
27 $combined = array_combine( $keys, $items );
28
29 return self::of( false !== $combined ? $combined : [] );
30 }
31
32 public function entities() {
33 $toPairs = function ( $value, $key ) {
34 return [ $key, $value ];
35 };
36
37 return $this->map( $toPairs );
38 }
39
40 public function pluck( $column ) {
41 return self::of( array_column( $this->array, $column ) );
42 }
43
44 public function reduce( callable $fn, $initial = 0 ) {
45 return array_reduce( $this->array, $fn, $initial );
46 }
47
48 public function values() {
49 return self::of( array_values( $this->array ) );
50 }
51
52 public function mergeRecursive( array $other ) {
53 return self::of( array_merge_recursive( $this->array, $other ) );
54 }
55
56 public function get( $key = null ) {
57 if ( null !== $key ) {
58 $data = array_key_exists( $key, $this->array ) ? $this->array[ $key ] : null;
59 if ( is_array( $data ) ) {
60 return self::of( $data );
61 } elseif ( is_null( $data ) ) {
62 return new NullCollection();
63 }
64
65 return $data;
66 }
67
68 return $this->array;
69 }
70
71 public function getOrNull( $key = null ) {
72 return $this->get( $key );
73 }
74
75 public function contains( $value ) {
76 return in_array( $value, $this->array, true );
77 }
78
79 public function head() {
80 if ( count( $this->array ) ) {
81 $temp = array_values( $this->array );
82 $result = $temp[0];
83 if ( is_array( $result ) ) {
84 return self::of( $result );
85 }
86
87 return $result;
88 }
89
90 return new NullCollection();
91 }
92
93 public function offsetExists( $key ) {
94 return array_key_exists( $key, $this->items );
95 }
96
97 public function has( $key ) {
98 return $this->offsetExists( $key );
99 }
100
101 public function any( callable $fn ) {
102 return $this->filter( $fn )->count() > 0;
103 }
104
105 public function count() {
106 return count( $this->array );
107 }
108
109 public function firstIndex( callable $fn ) {
110 foreach ( $this->array as $index=>$item ) {
111 if ( $fn( $item ) ) {
112 return $index;
113 }
114 }
115 return -1;
116
117 }
118 }
119
120 class NullCollection {
121
122 public function map( callable $fn ) {
123 return $this;
124 }
125
126 public function filter( callable $fn ) {
127 return $this;
128 }
129
130 public function head() {
131 return $this;
132 }
133
134 public function pluck() {
135 return $this;
136 }
137
138 public function get() {
139 return $this;
140 }
141
142 public function getOrNull() {
143 return null;
144 }
145
146 }
147