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 s jednou adresou, ktoré nepotrebujú vlastníka, 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
// One address — no owner scope needed.
Addresses::update($address, $data); // full write, dispatches AddressUpdated
Addresses::delete($address); // soft delete, dispatches AddressDeleted
Addresses::countryName('sk'); // resolved name, or 'SK' without a resolverMetódy fasády
| Metóda | Vracia | Čo robí |
|---|---|---|
Addresses::for(Model $addressable) | AddressBook | Adresár vlastníka — vytvára, pridáva, číta a povyšuje jeho adresy. |
Addresses::update(Address $address, AddressData $data) | Address | Úplný zápis jednej adresy; isPrimary: true ju povýši, bez neho stratí primárny príznak. Odošle AddressUpdated a pri povýšení PrimaryAddressChanged. |
Addresses::delete(Address $address) | void | Mäkko zmaže jednu adresu; odošle AddressDeleted. |
Addresses::countryName(string $iso) | string | Zistený názov krajiny, bez resolvera normalizovaný ISO kód. |
Addresses::fake() | AddressesFake | Nahradí 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 AddressBook | Vracia | Čo robí |
|---|---|---|
new() | PendingAddress | Spustí fluentný builder naviazaný na tohto vlastníka. |
add(AddressData $data) | Address | Vytvorí 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 $type = null) | ?Address | Primárna adresa daného typu, alebo prvá primárna adresa ľubovoľného typu. |
ofType(AddressType $type) | Collection<int, Address> | Všetky adresy daného typu, od najstaršej. |
setPrimary(Address $address) | Address | Povýš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.
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 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.