Open source
Attributes for Laravel
composer require roundly-consulting/attributes-for-laravelPrehľad
Dynamické typované atribúty kľúč/hodnota pre akýkoľvek Eloquent model. Pridajte jeden trait a model získa dopytovateľnú sadu vlastných polí — color, rating, on_sale, published_at — uložených v jedinej polymorfnej tabuľke, takže nové pole nikdy nepotrebuje migráciu. Hodnoty sa vracajú ako skutočný PHP typ a voliteľné definície pridávajú validáciu — aj naprieč atribútmi —, predvolené hodnoty, jedinečnosť a povinnosť, šifrované uloženie aj auditnú stopu toho, kto čo zmenil. Licencia MIT, postavené len na Laraveli a troch malých balíkoch Roundly — bez závislostí tretích strán.
Čo získate
Typované hodnoty
Reťazce, celé a desatinné čísla, booleany, polia aj dátumy sa vracajú ako skutočný PHP typ — bez ručného pretypovania.
Fluentný builder a synchronizácia
Pripravte niekoľko atribútov aj s metadátami a uložte ich popri ostatných alebo synchronizujte na presnú množinu — všetko alebo nič, v jednej transakcii.
Query scopy
Filtrujte a zoraďujte vlastníkov podľa atribútov — zhoda, množiny, rozsahy, prítomnosť, NULL a poradie.
Definície a obmedzenia
Registrujte známe atribúty globálne alebo pre konkrétny model s pravidlami Laravelu — aj takými, ktoré porovnávajú atribúty navzájom — predvolenými hodnotami, prísnym režimom, povinnosťou a jedinečnosťou vynútenou databázou — v rámci typu modelu, tímu či tenanta alebo globálne.
Fasáda, DI alebo akcie
Attributes::for($model) na každé čítanie a zápis, vložiteľný AttributesManager alebo jednoúčelové akcie — a Attributes::fake() zaznamená každý zápis.
Šifrované uloženie
Označte atribút ako šifrovaný — uloží sa ako šifrový text cez Crypt, pri čítaní sa transparentne dešifruje a jedinečnosť platí ďalej.
Auditná stopa a udalosti
Voliteľná história zmien starý→nový, ktorá vie zaznamenať aj autora každej zmeny, API resource na jej výpis a udalosti po commite pri pripojení, odpojení a synchronizácii.
Dokumentácia
Inštalácia
Inštalácia cez Composer, publikovanie a spustenie migrácií, voliteľne publikovanie konfiguračného súboru a prechod na 2.1.
Konfigurácia
Každý konfiguračný kľúč a jeho predvolená hodnota — model, tabuľka, typy kľúčov, prísny režim, prečistenie, história s autorom, validácia a definície.
Databázová schéma a model
Tabuľky atribútov a revízií, typy kľúčov vlastníka pre modely s UUID a ULID a náhrada modelu Attribute vlastným.
Trait HasAttributes
Pridajte trait a kontrakt HasAttributes na akýkoľvek Eloquent model a získajte typované, dopytovateľné atribúty — plus prehľad metód.
Fasáda Attributes
Attributes::for($owner) na každé čítanie a zápis jedného modelu, plus definície, validácia, prečistenie a zaznamenávajúci fake.
DI a akcie
Bez fasády: vložte si AttributesManager a máte to isté API bez statických volaní, alebo volajte jednoúčelovú akciu priamo.
Typované hodnoty
Hodnoty si zachovávajú skutočný PHP typ — reťazce, čísla, booleany, polia aj dátumy sa vracajú bez ručného pretypovania.
Pripájanie atribútov a metadát
Pripojte jeden alebo viac typovaných atribútov, doplňte k nim metadáta a nahraďte metadáta bez zmeny hodnoty.
Fluentný builder
Pripravte niekoľko atribútov s metadátami, upravte pripravenú množinu a uložte ju popri existujúcich alebo nimi nahraďte všetky.
Čítanie atribútov
Čítajte typované hodnoty, reťazce, modely a metadáta; použite attr() alebo typované čítanie; exportujte atribúty ako mapy.
Query scopy
Filtrujte a zoraďujte modely vlastníkov podľa ich atribútov — zhoda, množiny, rozsahy, prítomnosť, NULL a poradie.
Odstraňovanie a synchronizácia
Odstraňujte atribúty cez soft delete alebo natrvalo, ponechajte len vybrané a synchronizujte atribúty modelu na presnú množinu.
Definície a validácia
Registrujte známe atribúty s typom a validačnými pravidlami Laravelu, načítajte ich z konfigurácie a zapnite prísny režim.
Validácia naprieč atribútmi
Overte celú množinu atribútov vlastníka naraz, aby pravidlá ako gte:min_price či required_if:kind,physical videli aj ostatné atribúty.
Schémy modelov
Deklarujte definície atribútov priamo na modeli — ako vlastnosť alebo metódu — prekryté cez globálne definície len pre daný model.
Jedinečnosť, povinnosť a predvolené hodnoty
Vynúťte jedinečné hodnoty v rámci typu modelu, tímu či tenanta alebo globálne, overujte povinné atribúty a čítajte predvolené hodnoty.
Šifrované hodnoty
Označte definíciu ako šifrovanú — hodnota sa uloží ako šifrový text cez Crypt a pri čítaní sa transparentne dešifruje.
História a auditná stopa
Zapnite revízie starý→nový pri každej zmene, zaznamenajte ich autora, čítajte ich pre model či atribút a vykreslite ich pre API.
Udalosti
Reagujte na zmeny atribútov cez AttributeAttached, AttributeDetached a AttributesSynced — pre audit, reindexáciu či synchronizáciu.
Artisan príkazy
Vypíšte atribúty vlastníka, natrvalo prečistite staré soft-deleted atribúty a overte konfiguráciu balíka príkazom about.
Enumy
AttributeType, UniqueScope a RevisionType — so zoznamami možností, popiskami, vyhľadávaním a porovnávaním z enums-for-laravel.
Výnimky
Každá výnimka, ktorú balík vyhadzuje, kedy vznikne a aký kontext nesie — všetky dedia z AttributesException.
Testovanie
Zaznamenajte zápisy cez Attributes::fake() a jeho asercie, testujte nad skutočnými riadkami s RefreshDatabase a plňte dáta factory.
Požiadavky
PHP 8.4+ a Laravel 13, plus tri malé balíky Roundly, ktoré Composer nainštaluje automaticky.
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.