PHP code example of grifart / enum
1. Go to this page and download the library: Download grifart/enum 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/ */
grifart / enum example snippets
/**
* @method static DayOfWeek MONDAY()
* @method static DayOfWeek TUESDAY()
*/
final class DayOfWeek extends \Grifart\Enum\Enum
{
use Grifart\Enum\AutoInstances;
private const MONDAY = 'monday';
private const TUESDAY = 'tuesday';
}
$monday = DayOfWeek::MONDAY();
function process(DayOfWeek $day): void { /* ... */ }
/**
* @method static ExpirationType ASSIGNMENT()
* @method static ExpirationType FIXED()
*/
abstract class ExpirationType extends \Grifart\Enum\Enum
{
protected const ASSIGNMENT = 'assignment';
protected const FIXED = 'fixed';
abstract public function computeExpiration(Offer $offer): \DateTimeImmutable;
protected static function provideInstances() : array {
return [
new class(self::ASSIGNMENT) extends ExpirationType {
public function computeExpiration(Offer $offer): \DateTimeImmutable {
return /* behaviour A */;
}
},
new class(self::FIXED) extends ExpirationType {
public function computeExpiration(Offer $offer): \DateTimeImmutable {
return /* behaviour B */;
}
},
];
}
}