for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace IlluminateAgnostic\Str\Support;
/**
* @mixin \IlluminateAgnostic\Str\Support\Collection
*/
class HigherOrderCollectionProxy
{
* The collection being operated on.
*
* @var \IlluminateAgnostic\Str\Support\Collection
protected $collection;
* The method being proxied.
* @var string
protected $method;
* Create a new proxy instance.
* @param \IlluminateAgnostic\Str\Support\Collection $collection
* @param string $method
* @return void
@return
Adding a @return annotation to a constructor is not recommended, since a constructor does not have a meaningful return value.
Please refer to the PHP core documentation on constructors.
public function __construct(Collection $collection, $method)
$this->method = $method;
$this->collection = $collection;
}
* Proxy accessing an attribute onto the collection items.
* @param string $key
* @return mixed
public function __get($key)
return $this->collection->{$this->method}(function ($value) use ($key) {
return is_array($value) ? $value[$key] : $value->{$key};
});
* Proxy a method call onto the collection items.
* @param array $parameters
public function __call($method, $parameters)
return $this->collection->{$this->method}(function ($value) use ($method, $parameters) {
return $value->{$method}(...$parameters);
Adding a
@return
annotation to a constructor is not recommended, since a constructor does not have a meaningful return value.Please refer to the PHP core documentation on constructors.