1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
<?php namespace Elementor\Core\Utils;
if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. }
class Static_Collection {
/** * The current Collection instance. * * @var Collection */ protected $collection;
/** * Return only unique values. * * @var bool */ protected $unique_values = false;
/** * @inheritDoc */ public function __construct( array $items = [], $unique_values = false ) { $this->collection = new Collection( $items ); $this->unique_values = $unique_values; }
/** * Since this class is a wrapper, every call will be forwarded to wrapped class. * Most of the collection methods returns a new collection instance, and therefore * it will be assigned as the current collection instance after executing any method. * * @param string $name * @param array $arguments */ public function __call( $name, $arguments ) { $call = call_user_func_array( [ $this->collection, $name ], $arguments );
if ( $call instanceof Collection ) { $this->collection = $this->unique_values ? $call->unique() : $call; }
return $call; } }
|