PHP VERSION: 8.2.17
anonymous_class_repurposing.php
<?php
// anonymous class:
// repurposing a class to facilitate inter-framework operability
$date = new DateTime('now');
echo $date->format('Y-m-d');
echo PHP_EOL;
// old way of adding 14 days:
$date->add(new DateInterval('P14D'));
echo $date->format('Y-m-d');
echo PHP_EOL;
class I
{
public function days(int $days)
{
return new class($days) extends DateInterval {
public function __construct($days)
{
parent::__construct('P' . $days . 'D');
}
};
}
}
// new way of adding 14 day
$date->add((new I())->days(14));
echo $date->format('Y-m-d');
echo PHP_EOL;
Output
2024-03-29
2024-04-12
2024-04-26
SOURCE CODE