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

Open source

Addresses for Laravel

Inštalácia
composer require roundly-consulting/addresses-for-laravel
Vyžaduje: PHP ^8.4 · Laravel ^12.0|^13.0

Prehľad

Adresy pre akýkoľvek Eloquent model, natívne v Laraveli. Pridajte trait HasAddresses a pripojte toľko fakturačných, dodacích, domácich či kancelárskych adries, koľko potrebujete — všetky v jednej polymorfnej tabuľke addresses, vytvorené fluentným builderom alebo cez DTO, typované enumom AddressType, s najviac jednou primárnou adresou na typ, povyšovanou atomicky, a s ISO kódmi krajín normalizovanými už pri zápise. Súčasťou sú query scopy, udalosti životného cyklu, API resource a testovacie pomôcky. Licencia MIT, postavené len na Laraveli a vlastnom package toolkite Roundly — bez závislostí tretích strán a bez sieťových volaní.

Čo získate

Adresy na akomkoľvek modeli

Jeden trait a jedna polymorfná tabuľka dajú akémukoľvek Eloquent modelu fakturačné, dodacie či kancelárske adresy — pre vlastníkov s bigint, UUID aj ULID kľúčmi.

Typované typy adries

Enum AddressType — default, billing, shipping, home, work, office — s popiskami pre UI. Nikde v API žiadne typy ako voľné reťazce.

Jedna primárna na typ

Povýšenie adresy atomicky, pod zámkom skupiny vlastník + typ, zruší primárny príznak ostatným; adresu iného vlastníka či zmazanú adresu odmietne.

Fasáda, DI alebo akcie

Addresses::for($customer)->new()->in(…)->at(…)->save() sa číta ako veta; rovnaký výsledok dosiahnete aj cez AddressManager alebo akciu.

Normalizácia ISO krajín

Kódy sa pri zápise orežú, prevedú na veľké písmená a overí sa ich tvar. Názvy a geokódovanie doplní váš CountryResolver — bez sieťových volaní.

Udalosti, scopy a API resource

Štyri udalosti životného cyklu, query scopy primary/ofType/inCountry a stabilný AddressResource pre JSON API.

Zaznamenávajúci fake a pomôcky

Addresses::fake() zaznamená každý zápis bez zásahu do databázy; k tomu assertHasAddress(), assertPrimaryAddress() a AddressFactory.

Dokumentácia

Inštalácia

Inštalácia cez Composer, publikovanie a spustenie migrácie adries (typ kľúča UUID či ULID nastavte vopred) a voliteľne publikovanie config/addresses.php.

Konfigurácia

Každý konfiguračný kľúč a jeho predvolená hodnota — model adresy, typ kľúča vlastníka, predvolený typ, normalizácia krajín, resolver a alias.

Databázová schéma a typy kľúčov

Tabuľka addresses stĺpec po stĺpci a ako key_type určuje polymorfný stĺpec vlastníka pre modely s kľúčmi bigint, UUID alebo ULID.

Trait HasAddresses

Pridajte HasAddresses akémukoľvek Eloquent modelu a získate polymorfný vzťah addresses a pomocníkov na vytváranie, čítanie a primárne adresy.

Typy adries

Enum AddressType — šesť prípadov s popiskami pre UI — a ako bezpečne previesť nedôveryhodné reťazce z requestov.

Fasáda Addresses

Addresses::for($owner) vráti adresár vlastníka pre akýkoľvek model; update, delete a countryName pracujú s jednou adresou.

DI a akcie

Bez fasády: injektujte AddressManager alebo spustite niektorú zo štyroch akcií priamo — mapa metód fasády na akcie.

AddressData a CreateAddressAction

Zápisy cez DTO AddressData — make(), predvolené hodnoty a záložný default_type — alebo createAddress() a CreateAddressAction na akomkoľvek modeli.

Fluentný builder

Vytvárajte adresy cez Addresses::for()->new() alebo newAddress() — čitateľná reťaz PendingAddress, ktorá neprepustí neúplnú adresu.

Čítanie adries

Načítajte všetky adresy, prvú alebo primárnu adresu daného typu, kolekciu jedného typu alebo rýchlu kontrolu existencie.

Primárne adresy

Jedna primárna adresa na vlastníka a typ — povýšenie, zrušenie, nastavenie pri vytvorení a ochrana pred adresou iného vlastníka.

Query scopy

Filtrujte adresy scopmi primary(), ofType() a inCountry() — na modeli, na vzťahu ľubovoľného vlastníka alebo v kombinácii.

Model Address

Atribúty, casty, vzťah na vlastníka, JSON meta a jednoriadkový popis formatted() na modeli Address.

Úprava a mazanie

Upravujte cez Addresses::update() s úplným AddressData, adresy mäkko mažte a obnovujte a upracte ich, keď vlastník zanikne.

Kódy krajín a resolvery

Normalizácia ISO kódov krajín pri každom zápise a voliteľný CountryResolver pre názvy a geokódovanie — bez pribalených dát a sieťových volaní.

Udalosti

AddressCreated, AddressUpdated, AddressDeleted a PrimaryAddressChanged — kedy sa ktorá odošle a ako ich počúvať.

API resource

AddressResource vykreslí adresu pre JSON API v stabilnom tvare — riadky adresy, krajina, primárny príznak, formátovaný popis a meta.

Vlastný model adresy

Cez konfiguráciu nasaďte vlastnú podtriedu Address so scopmi, vzťahmi či castmi — každá cesta balíka ju použije.

Výnimky

Jedna základná AddressesException a päť typovaných výnimiek — neúplná adresa, neplatná krajina, cudzia adresa, zmazaná adresa a neplatný typ.

Testovanie

Zaznamenávajúci Addresses::fake(), asercie InteractsWithAddresses, AddressFactory so stavmi billing, shipping a primary a príklad v Peste.

Požiadavky

PHP 8.4+ a Laravel 12 alebo 13 — bez PHP rozšírení, bez závislostí tretích strán a bez sieťových volaní.

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.