Review generated status parser

from Enums
PHP 8.3.33 advanced 6 min 4 issues to find

Review this generated status parser before it handles API requests.

Require a status field containing an exact lowercase backing value, reject missing, malformed, or unknown input, and state cancellation policy explicitly for every case so new cases require a deliberate decision.

php
<?php
enum OrderStatus: string
{
    case Pending = 'pending';
    case Paid = 'paid';
    case Shipped = 'shipped';
}
final class StatusParser {
    public static function fromPayload(array $payload): OrderStatus {
        foreach (OrderStatus::cases() as $case) {
            if (strtolower((string) ($payload['status'] ?? '')) === $case->value) {
                return $case;
            }
        }
        return OrderStatus::Pending;
    }
    public static function canCancel(OrderStatus $status): bool {
        return match ($status) {
            OrderStatus::Shipped => false,
            default => true,
        };
    }
}

generated code is illustrative, not from any one model

Open in playground
Report an error