1. Go to this page and download the library: Download eonx-com/easy-utils library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
eonx-com / easy-utils example snippets
use App\Domain\WorkerInterface;
use EonX\EasyUtils\Common\Helper\CollectorHelper;
final class MyClass
{
/**
* @var \App\Domain\WorkerInterface[]
*/
private array $workers;
public function __construct(iterable $workers)
{
// $workers could be any type of iterable, convert it to array
$workers = CollectorHelper::convertToArray($workers);
// Now we are sure $workers is an array, we can use array_filter()
$workers = \array_filter($workers, static function ($worker): bool {
return $worker instanceof WorkerInterface;
});
// $workers is now an array of WorkerInterface for sure
$this->workers = $workers;
}
}
use App\Domain\WorkerInterface;
use EonX\EasyUtils\Common\Helper\CollectorHelper;
final class MyClass
{
/**
* @var iterable<\App\Domain\WorkerInterface>
*/
private array $workers;
public function __construct(iterable $workers)
{
// $workers now contains only WorkerInterface instances
$workers = CollectorHelper::filterByClass($workers, WorkerInterface::class);
// The filterByClass() method still returns an iterable, a generator more precisely
// If you need an array, you can use the filterByClassAsArray() method
$this->workers = $workers;
}
}
use App\Domain\WorkerInterface;
use EonX\EasyUtils\Common\Helper\CollectorHelper;
final class MyClass
{
/**
* @var \App\Domain\WorkerInterface[]
*/
private array $workers;
public function __construct(iterable $workers)
{
// $workers now contains only WorkerInterface instances
$workers = CollectorHelper::filterByClassAsArray($workers, WorkerInterface::class);
// $workers is now an array containing only WorkerInterface instances
$this->workers = $workers;
}
}
use App\Domain\WorkerInterface;
use EonX\EasyUtils\Common\Helper\CollectorHelper;
final class MyClass
{
/**
* @var \App\Domain\WorkerInterface[]
*/
private array $workers;
public function __construct(iterable $workers)
{
// $workers now contains only WorkerInterface instances
$workers = CollectorHelper::ensureClass(WorkerInterface::class, $workers);
foreach ($workers as $worker) {
// This code will be executed only if all items are instances of WorkerInterface
}
}
}
// Foo and Bar both implement EonX\EasyUtils\Common\Helper\HasPriorityInterface
$foo = new Foo(); // Has a priority of 10
$bar = new Bar(); // Has a priority of 100
// $foo is added to the array first, and $bar second
$objects = [$foo, $bar];
// $bar is now first as it has a higher priority than $foo
$objects = CollectorHelper::orderHigherPriorityFirst($objects); // [$bar, $foo]
// Foo and Bar both implement EonX\EasyUtils\Common\Helper\HasPriorityInterface
$foo = new Foo(); // Has a priority of 10
$bar = new Bar(); // Has a priority of 100
// $foo is added to the array first, and $bar second
$objects = [$foo, $bar];
// $foo is still first as it has a lower priority than $bar
$objects = CollectorHelper::orderLowerPriorityFirst($objects); // [$foo, $bar]
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.