---
title: "DI a akcie — Approvals for Laravel | Roundly"
description: "Bez fasády: injektujte ApprovalsManager alebo volajte triedy akcií priamo — s úplnou mapou metód fasády na akcie."
url: https://roundly-consulting.com/sk/open-source/navody/approvals-for-laravel/bez-fasady
language: sk
---

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

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

# DI a akcie

Balík má tri rovnocenné vstupné body a všetky spúšťajú ten istý kód:

- Fasáda Approvals — najkratší zápis a odporúčaná voľba.
- Manažér RoundlyConsulting\\Approvals\\ApprovalsManager — koreň fasády. Injektujte ho cez konštruktor a dostanete rovnaké API ako explicitnú závislosť, bez statických volaní.
- Akcie v RoundlyConsulting\\Approvals\\Actions — jednoúčelové triedy s metódou execute(), ktoré skladáte do vlastných akcií, jobov a príkazov.

## Injektovanie manažéra

```php
use RoundlyConsulting\Approvals\ApprovalsManager;

final class ApproveInvoice
{
    public function __construct(private ApprovalsManager $approvals) {}

    public function __invoke(Invoice $invoice, User $user): void
    {
        $this->approvals->for($invoice)->as($user)->approve();
    }
}
```

Approvals::fake() podstrčí podtyp ApprovalsManager fasáde aj injektovaným manažérom, takže aj takto napísaný kód sa v testoch zaznamená.

## Volanie akcie

```php
use RoundlyConsulting\Approvals\Actions\ApproveAction;
use RoundlyConsulting\Approvals\Actions\OpenApprovalRequestAction;
use RoundlyConsulting\Approvals\DataTransferObjects\ApprovalRequestData;
use RoundlyConsulting\Approvals\DataTransferObjects\DecisionData;
use RoundlyConsulting\Approvals\Enums\ApprovalRule;

app(OpenApprovalRequestAction::class)->execute(
    new ApprovalRequestData($invoice, [$a, $b, $c], ApprovalRule::Quorum, quorum: 2),
);

app(ApproveAction::class)->execute($user, $invoice, DecisionData::approved('LGTM'));
```

Manažér si každú akciu tiež vytvára z kontajnera, takže binding, ktorý pre akciu zaregistrujete, platí aj pri volaní cez fasádu.

## Metóda fasády → akcia

| Akcia | Cesta cez fasádu |
| --- | --- |
| `ApproveAction` | `for()->as()->approve()` |
| `RejectAction` | `for()->as()->reject()` |
| `RequestApprovalAction` | `for()->as()->ask()` |
| `CancelApprovalAction` | `for()->as()->cancel()` |
| `ToggleApprovalAction` | `for()->as()->toggle()` |
| `OpenApprovalRequestAction` | `request()->from()->open()` |
| `RequestStagedApprovalAction` | `request()->stages()->open()` |
| `OpenWorkflowRequestAction` | `request()->workflow()->open()` |
| `DelegateApprovalsAction` | `delegations()->to()->grant()` |
| `RevokeApprovalDelegationAction` | `delegations()->revoke()` |
| `ExpireApprovalsAction` | `expire()` |
| `CloseApprovalRequestAction` | `for()->close()` |

Signatúry všetkých metód execute() a DTO, ktoré akcie prijímajú, nájdete v časti Akcie a DTO.

## 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/approvals-for-laravel.md)
