Files

25 lines
602 B
PHP
Raw Permalink Normal View History

2026-01-07 01:24:40 +01:00
<?php
require_once __DIR__."/../vendor/autoload.php";
use NoccyLabs\StateMachine\StateTrait;
use NoccyLabs\StateMachine\Attributes\ValidTransitions;
enum OrderState {
use StateTrait;
#[ValidTransitions([OrderState::PROCESSING])]
case PENDING;
#[ValidTransitions([OrderState::PROCESSED,OrderState::PENDING])]
case PROCESSING;
#[ValidTransitions([OrderState::SHIPPED])]
case PROCESSED;
#[NoValidTransitions]
case SHIPPED;
}
$os = OrderState::PENDING;
var_dump($os->canTransitionTo(OrderState::PROCESSING));
var_dump($os->canTransitionTo(OrderState::PROCESSED));