Initial commit

This commit is contained in:
Christopher Vagnetoft
2026-01-07 01:24:40 +01:00
commit 3d276060ec
14 changed files with 2258 additions and 0 deletions

24
examples/state.php Normal file
View File

@@ -0,0 +1,24 @@
<?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));