NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky

fromName() a fromLabel() vyhodia RoundlyConsulting\Enums\Exceptions\EnumException, keď žiadny prípad nezodpovedá; random() ju vyhodí na enume bez prípadov, validationRule() pri hodnote, ktorú nevie zapísať do pravidla in: tak, aby sa prečítala späť bez zmeny, a untranslated() na enume bez #[TranslatedLabels]. Neplatnú skupinu v #[TranslatedLabels] nahlási readable() — a teda každá metóda s popismi — pri prvom použití. Výnimka rozširuje InvalidArgumentException z PHP, takže ju zachytíte oboma spôsobmi:

use RoundlyConsulting\Enums\Exceptions\EnumException;

try {
    NewsCategory::fromName('Breaking');
} catch (EnumException $e) {
    $e->getMessage();
    // "No case named [Breaking] exists on enum [App\Enums\NewsCategory]."
}

try {
    NewsCategory::fromLabel('Breaking News');
} catch (InvalidArgumentException $e) {
    // EnumException extends InvalidArgumentException, so this catches it too
}

Má šesť pomenovaných konštruktorov:

Pomenovaný konštruktorVyhodí juSpráva
EnumException::nameNotFound(string $enum, string $name)fromName()No case named [{name}] exists on enum [{enum}].
EnumException::labelNotFound(string $enum, string $label)fromLabel()No case with label [{label}] exists on enum [{enum}].
EnumException::noCases(string $enum)random()Enum [{enum}] has no cases.
EnumException::valueNotRepresentable(string $enum, string $value)validationRule()Value [{value}] of enum [{enum}] cannot be written into an in: rule that reads back unchanged; validate it with Rule::enum() instead.
EnumException::invalidLabelGroup(string $enum, string $group)readable() — teda každá metóda s popismi — a untranslated()Enum [{enum}] declares an invalid #[TranslatedLabels] group [{group}]: a group must not be blank or start or end with whitespace, '.' or ':'.
EnumException::labelsNotTranslated(string $enum)untranslated()Enum [{enum}] has no #[TranslatedLabels] attribute, so it has no translation keys to check.

EnumException zámerne nie je final, takže ju môžete rozšíriť. Pri vstupe od používateľov uprednostnite varianty tryFrom* spolu s validáciou a from* si nechajte pre dôveryhodné dáta, kde je nenájdenie chybou, o ktorej sa chcete dozvedieť.

Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

Ďalšie spôsoby podpory vrátane kryptomien

Odoslaním daru súhlasíte s našimi podmienkami prijímania darov.

Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.