Open source
Enums for Laravel
composer require roundly-consulting/enums-for-laravelPrehľad
Jeden trait, ktorý vašim PHP enumom pridá pomocné metódy, aké si inak v každej Laravel aplikácii píšete znova: čitateľné a preložiteľné popisy; názvy, hodnoty a popisy ako kolekcie; možnosti pre select; vyhľadanie prípadu podľa názvu či popisu; validačné pravidlo, ktoré sa nikdy nerozíde s kódom; náhodný výber; prehľadné porovnania a plynulé podmienené callbacky. Pridajte RoundlyConsulting\Enums\Helpers do backed alebo čistého enumu a máte hotovo — bez service providera, konfigurácie, migrácií či príkazov. Natívne pre Laravel — postavené na jeho vlastných Collection, Str a prekladači — s licenciou MIT a bez závislostí nad rámec samotného Laravelu.
Čo získate
Čitateľné a preložiteľné popisy
readable() a label() prevedú hodnotu prípadu cez Str::headline() — z hot-news vznikne „Hot News“ — a potom ju vyhľadajú v prekladači Laravelu.
Názvy, hodnoty a popisy
Jedným volaním získate názvy, hodnoty alebo popisy všetkých prípadov ako Laravel kolekcie v poradí deklarácie.
Možnosti pre select
Mapa hodnota => popis pre selecty v Blade alebo typované DTO EnumOption (value, label, name) pre Inertia, Vue a React.
Vyhľadanie prípadu
Nájdite prípad podľa názvu alebo popisu — striktné varianty from* vyhodia výnimku, tryFrom* vrátia null — plus hasName() a hasValue().
Validácia vždy v súlade s kódom
validationRule() zostaví pravidlo in: z aktuálnych prípadov, takže nový prípad nikdy nerozbije formulár.
Porovnania a callbacky
is(), isNot(), isIn(), isNotIn() a plynulé callbacky whenIs* s voliteľnou predvolenou vetvou.
Jeden trait, žiadne nastavovanie
Bez service providera, konfigurácie, migrácií, príkazov či fasády. Funguje na backed aj čistých enumoch — čisté enumy všade namiesto hodnoty použijú názov prípadu.
Dokumentácia
Inštalácia
Inštalácia cez Composer — nie je čo publikovať ani registrovať: žiadny service provider, konfigurácia, migrácia ani príkaz.
Rýchly štart
Pridajte do enumu trait Helpers a jedným riadkom získate popisy, možnosti pre select, vyhľadávanie, validáciu aj porovnania.
Backed a čisté enumy
Čo jednotlivé metódy vracajú pre reťazcové, celočíselné a čisté enumy — a kde čisté enumy namiesto hodnoty použijú názov prípadu.
Čitateľné popisy
readable() a label() prevedú prípad na čitateľný popis cez Str::headline() a prekladač Laravelu.
Preklad popisov
Lokalizujte popisy cez JSON prekladové súbory alebo prepíšte readable() priamo na enume a majte ich plne pod kontrolou.
Názvy, hodnoty a popisy
names(), values(), storable(), labels(), collect() a count() — všetky prípady ako kolekcia v poradí deklarácie.
Možnosti pre select
toOptions() a toArray() zostavia mapu hodnota => popis pre selecty v Blade, formulárové komponenty, JSON aj odpovede API.
Možnosti pre frontend
options() vracia typované DTO EnumOption — hodnotu, popis a názov — v tvare, aký očakávajú selecty v JavaScripte, Inertia, Vue a Reacte.
Vyhľadanie prípadu
Nájdite prípad podľa názvu alebo popisu cez fromName(), fromLabel() a ich varianty tryFrom*; existenciu overíte cez hasName() a hasValue().
Validácia
validationRule() zostaví pravidlo in: z values(), takže zoznam povolených hodnôt sa pri zmene prípadov nikdy nerozíde s kódom.
Porovnávanie
is(), isNot(), isIn() a isNotIn() porovnávajú prípady podľa identity — čitateľné podmienky bez ručne písaných reťazí ===.
Podmienené callbacky
whenIs(), whenIsNot(), whenIsIn() a whenIsNotIn() spustia callback len pri splnení podmienky, s voliteľnou predvolenou vetvou.
Náhodné prípady a factories
random() vyberie náhodný prípad pre model factories, seedery a demo dáta; collect() prejde všetky prípady.
Výnimky
EnumException — vyhodia ju fromName() a fromLabel() pri nenájdení — rozširuje InvalidArgumentException a má dva pomenované konštruktory.
Prehľad API
Všetky statické a inštančné metódy, ktoré pridáva trait Helpers — signatúra, návratový typ a účel.
Testovanie
Overte popisy, možnosti a validáciu vlastných enumov v Peste, pridajte prekladové riadky cez Lang::addLines() a spustite testy balíka.
Požiadavky
PHP 8.4+ a Laravel 12 alebo 13 — bez PHP rozšírení, service providera či konfigurácie.
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 kryptomienOdoslaní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.