PHP code example of skywalker-labs / enum
1. Go to this page and download the library: Download skywalker-labs/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/ */
skywalker-labs / enum example snippets
use Skywalker\Enum\AbstractEnum;
/**
* @method static self MONDAY()
* @method static self TUESDAY()
* ...
*/
final class WeekDay extends AbstractEnum
{
protected const MONDAY = null;
protected const TUESDAY = null;
// ...
}
// Choose between 'name', 'value', or 'object'
AbstractEnum::$jsonMode = 'object';
echo json_encode(WeekDay::MONDAY());
// Output: {"name":"MONDAY","value":null,"label":"MONDAY","ordinal":0}
$day = WeekDay::from('MONDAY'); // Throws exception if not found
$day = WeekDay::tryFrom('INVALID'); // Returns null if not found
$randomDay = WeekDay::random();
echo WeekDay::MONDAY()->lowerName(); // "monday"
echo WeekDay::MONDAY()->camelName(); // "Monday"
$set = EnumSet::allOf(WeekDay::class);
$weekends = $set->filter(fn($d) => $d->isAnyOf([WeekDay::SATURDAY(), WeekDay::SUNDAY()]));
$names = $set->map(fn($d) => $d->name());
$first = $set->first(); // MONDAY
$last = $set->last(); // SUNDAY
$day = WeekDay::MONDAY();
$next = $day->next(); // TUESDAY
$prev = $day->previous(); // null
if ($day->isBefore(WeekDay::FRIDAY())) {
echo "Hang in there!";
}
$workDays = EnumSet::range(WeekDay::MONDAY(), WeekDay::FRIDAY());
$holidays = EnumSet::of(WeekDay::class, WeekDay::MONDAY());
$actualWork = $workDays->diff($holidays);
$allDays = $workDays->union($holidays);
$intersect = $workDays->intersect($holidays);
$restOfYear = $workDays->complement();
$day = WeekDay::fromNameInsensitive('monday'); // Returns MONDAY instance
// Returns ['MONDAY' => 'MONDAY', 'TUESDAY' => 'TUESDAY', ...]
$options = WeekDay::toArray();
if ($day->isAnyOf([WeekDay::SATURDAY(), WeekDay::SUNDAY()])) {
echo "It's the weekend!";
}
$mask = $set->toBitmask(); // integer e.g. 5
$restored = EnumSet::fromBitmask(WeekDay::class, $mask);