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

Fasáda Addresses

Fasáda Addresses je odporúčaný vstupný bod. Addresses::for($owner) vráti adresár vlastníka — funguje na akomkoľvek Eloquent modeli, bez traitu — a operácie, ktoré vlastníka nepotrebujú, sú ploché:

use RoundlyConsulting\Addresses\DataTransferObjects\AddressData;
use RoundlyConsulting\Addresses\Enums\AddressType;
use RoundlyConsulting\Addresses\Facades\Addresses;

// One owner's address book — any Eloquent model, no trait required.
$book = Addresses::for($supplier);

$book->new()                                    // fluent PendingAddress
    ->type(AddressType::Work)
    ->in('Bratislava')->at('Somewhere 1')->postalCode('81101')->country('SK')
    ->save();
$book->add(AddressData::make(city: 'Košice', street: 'Main 2', postalCode: '04001', countryIso: 'SK'));

$book->all();                                   // Collection<Address>, oldest first
$book->primary();                               // primary across all types (or null)
$book->primary(AddressType::Billing);           // primary of a type
$book->ofType(AddressType::Office);             // collection of a type
$book->setPrimary($address);                    // promote; refuses another owner's or a deleted address
$book->update($address, $data);                 // owner-checked full write
$book->delete($address);                        // owner-checked soft delete

// One address — unscoped, any owner.
Addresses::update($address, $data);             // full write, dispatches AddressUpdated
Addresses::delete($address);                    // soft delete, dispatches AddressDeleted

Addresses::types();                             // the configured type keys
Addresses::typeLabel('billing');                // 'Billing'
Addresses::countryName('sk');                   // resolved name, or 'SK' without a resolver

Metódy fasády

MetódaVraciaČo robí
Addresses::for(Model $addressable)AddressBookAdresár vlastníka — vytvára, pridáva, číta a povyšuje jeho adresy.
Addresses::update(Address $address, AddressData $data)AddressÚplný zápis akejkoľvek adresy, bez kontroly vlastníka; isPrimary: true ju povýši, bez neho stratí primárny príznak. Odošle AddressUpdated a pri povýšení PrimaryAddressChanged.
Addresses::delete(Address $address)voidMäkko zmaže akúkoľvek adresu, bez kontroly vlastníka; odošle AddressDeleted.
Addresses::types()list<string>Kľúče typov nakonfigurované v addresses.types — predvolene šesť vstavaných.
Addresses::typeLabel(AddressType|string $type)stringPopisok typu: nakonfigurovaný, preložený (dodáva sa angličtina a slovenčina), inak kľúč prevedený na nadpis.
Addresses::countryName(string $iso)stringZistený názov krajiny, bez resolvera normalizovaný ISO kód.
Addresses::fake()AddressesFakeNahradí manažéra zaznamenávajúcim fake (pozrite Testovanie).

Adresár

Všetky čítania a zápisy jedného vlastníka sú na jeho AddressBook. Na modeli s HasAddresses vráti ten istý objekt aj $model->addressBook():

Metóda AddressBookVraciaČo robí
new()PendingAddressSpustí fluentný builder naviazaný na tohto vlastníka.
add(AddressData $data)AddressVytvorí adresu z DTO; odošle AddressCreated a ak ju isPrimary povýši, aj PrimaryAddressChanged.
all()Collection<int, Address>Všetky adresy vlastníka, od najstaršej.
primary(AddressType|string|null $type = null)?AddressPrimárna adresa daného typu (prípad enumu alebo kľúč), alebo prvá primárna adresa ľubovoľného typu.
ofType(AddressType|string $type)Collection<int, Address>Všetky adresy daného typu (prípad enumu alebo kľúč, bez kontroly voči addresses.types), od najstaršej.
update(Address $address, AddressData $data)AddressAddresses::update() pre jednu z adries tohto vlastníka; ak uložený záznam patrí inému vlastníkovi alebo by ho zápis inému vlastníkovi presunul, vyhodí AddressOwnershipException a nezapíše nič.
delete(Address $address)voidAddresses::delete() pre jednu z adries tohto vlastníka; rovnaká kontrola vlastníctva aj výnimka.
setPrimary(Address $address)AddressPovýši jednu z adries tohto vlastníka; pri adrese iného vlastníka vyhodí AddressOwnershipException, pri mäkko zmazanej TrashedAddressException.

Čítania sa pýtajú nakonfigurovaného modelu adresy cez whereMorphedTo('addressable', $model), takže rešpektujú vlastný model a vynechávajú mäkko zmazané záznamy.

Addresses::update() a Addresses::delete() prijmú akúkoľvek adresu. Ak volajúci kód pozná vlastníka — request viazaný na zákazníka či tenanta — použite namiesto nich update() a delete() z adresára: vlastníka uloženého záznamu porovnajú podľa morph typu aj kľúča, načítaného pod zámkom, takže neprejde ani podvrhnutá kópia, ani záznam medzitým presunutý inému vlastníkovi.

Alias

Fasáda je predvolene zaregistrovaná ako globálny alias Addresses; premenujete alebo vypnete ju konfiguračným kľúčom facade_alias (pozrite Konfigurácia). Ak sa statickým volaniam chcete vyhnúť úplne, injektujte AddressManager alebo spustite akciu — pozrite DI a akcie.

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.