1. Go to this page and download the library: Download jarjak/collection 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/ */
jarjak / collection example snippets
use JarJak\Collection\Collection;
$dateArray = [
new DateTime(),
new DateTimeImmutable(),
];
$dateCollection = new Collection(...$dateArray);
# or
$dateCollection = Collection::from($dateArray);
# then do what you know from other collection implementations
$plusYears = $dateCollection
->map(fn($date) => $date->modify('+1 year'))
->toArray();
use JarJak\Collection\Collection;
class DateCollection extends Collection
{
// accept only date objects
public function __construct(DateTimeInterface ...$items)
{
parent::__construct(...$items);
}
// you can personalize it by adding custom methods too!
public function getMaxYear(): int
{
return $this->reduce(
0,
function (int $current, DateTimeInterface $date): int {
$year = (int) $date->format('Y');
return $current > $year ? $current : $year;
}
);
}
}
# this is acceptable
$dateCollection = new DateCollection(
new DateTime(),
new DateTimeImmutable()
);
# this will result in an error
$dateCollection = new DateCollection(
new DateTime(),
new DateTimeImmutable(),
date('now')
);
# then this will work
$plusYears = $dateCollection->map(fn($date) => $date->modify('+1 year'));
# but this won't
$dateStrings = $dateCollection->map(fn($date) => $date->format('Y-m-d'));
# unless you explicitly disable type check (which effectively sends you back to the base Collection class)
$dateStrings = $dateCollection
->disableTypeCheck()
->map(fn($date) => $date->format('Y-m-d'));
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.