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

Fasáda je len skratka — k dispozícii sú tri rovnocenné vstupné body a výber je na vás:

  • Fasáda Contacts — najkratší zápis a odporúčaná voľba.
  • Manažér injektovaný cez konštruktor — rovnaké API ako explicitná závislosť, bez statických volaní. RoundlyConsulting\Contacts\ContactsManager je koreňom fasády a je zaregistrovaný ako singleton.
  • Akcie — jednoúčelové triedy s metódou execute(), ktoré zapojíte do vlastných akcií, jobov a príkazov.

Injektovanie manažéra

Contacts::fake() vymení väzbu manažéra, takže sa zaznamená aj kód so závislosťou v konštruktore:

use App\Models\User;
use RoundlyConsulting\Contacts\ContactsManager;
use RoundlyConsulting\Contacts\Models\Contact;

final readonly class AddWorkEmail
{
    public function __construct(private ContactsManager $contacts) {}

    public function __invoke(User $user, string $email): Contact
    {
        $contact = $this->contacts->for($user)->email($email)->label('Work')->primary()->add();

        $this->contacts->verification()->request($contact);

        return $contact;
    }
}

Spustenie akcie

Každý zápis cez fasádu zodpovedá jednej akcii, ktorá sa získa z kontajnera:

Volanie fasádyAkcia
for($owner)->…->add(), for($owner)->add($data)AddContactAction::execute($owner, $data)
for($owner)->sync($type, $items)SyncContactsAction::execute($owner, $type, $items)
update($contact, $data)UpdateContactAction::execute($contact, $data)
delete($contact)DeleteContactAction::execute($contact)
setPrimary($contact)SetPrimaryContactAction::execute($contact)
verification()->request($contact)RequestContactVerificationAction::execute($contact)
verification()->confirm($contact, $token)ConfirmContactVerificationAction::execute($contact, $token)
verification()->markVerified($contact, $at)VerifyContactAction::execute($contact, $at)
use RoundlyConsulting\Contacts\Actions\AddContactAction;
use RoundlyConsulting\Contacts\Actions\RequestContactVerificationAction;
use RoundlyConsulting\Contacts\DataTransferObjects\ContactData;
use RoundlyConsulting\Contacts\Enums\ContactType;

$contact = app(AddContactAction::class)->execute($user, new ContactData(ContactType::Email, '[email protected]'));
$token = app(RequestContactVerificationAction::class)->execute($contact);

Každá akcia prijíma vlastníka alebo kontakt a podľa potreby DTO ContactData a uplatní rovnakú normalizáciu, validáciu, správu primárnych kontaktov aj udalosti ako fasáda. Akcia zavolaná priamo sa vykoná naozaj — Contacts::fake() zaznamenáva volania, ktoré idú cez manažéra.

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.