shell bypass 403
<?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;
}
}