---
title: "DI a akcie — Contacts for Laravel | Roundly"
description: "Injektujte ContactsManager a získate API fasády bez statických volaní, alebo priamo spustite jednu z ôsmich jednoúčelových akcií."
url: https://roundly-consulting.com/sk/open-source/navody/contacts-for-laravel/bez-fasady
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Contacts for Laravel](https://roundly-consulting.com/sk/open-source/navody/contacts-for-laravel.md)

# DI a akcie

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:

```php
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ády | Akcia |
| --- | --- |
| `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)` |

```php
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, 'a@b.com'));
$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](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## 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.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/contacts-for-laravel.md)
