---
title: "DI a akcie — Certificates for Laravel | Roundly"
description: "Bez fasády: injektujte CertificatesManager s rovnakým API alebo volajte sedem jednoúčelových akcií priamo z vlastného kódu."
url: https://roundly-consulting.com/sk/open-source/navody/certificates-for-laravel/bez-fasady
language: sk
---

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

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

# DI a akcie

Fasáda je odporúčaná voľba, nie jediná cesta. K rovnakému správaniu vedú tri vstupné body:

- Fasáda Certificates — najkratší zápis, ktorý používa celá táto dokumentácia.
- Manager RoundlyConsulting\\Certificates\\CertificatesManager — koreň fasády. Injektujte ho cez konštruktor a získate rovnaké API ako explicitnú závislosť, bez statických volaní.
- Akcie — jednoúčelové triedy s jedinou metódou execute(), vhodné na skladanie do vlastných akcií, jobov a príkazov.

## Injektovaný manager alebo akcia

```php
use RoundlyConsulting\Certificates\Actions\RevokeCertificateAction;
use RoundlyConsulting\Certificates\CertificatesManager;
use RoundlyConsulting\Certificates\DataTransferObjects\IssueCertificateData;

final class SiteCertificates
{
    public function __construct(private CertificatesManager $certificates) {}

    public function launch(string $domain): void
    {
        $this->certificates->issue(IssueCertificateData::make($domain));
        $this->certificates->for($domain)->renewLater();
    }
}

// The raw use case, e.g. from your own action:
app(RevokeCertificateAction::class)->execute($certificate, 'key compromise');
```

Helper certificates() vracia tú istú inštanciu managera ako app(CertificatesManager::class). Kedysi vracal správcu driverov — ten sa dnes volá CertificateProviderManager a pristupujete k nemu cez Certificates::driver() a Certificates::extend():

```php
use RoundlyConsulting\Certificates\CertificatesManager;

$certificates = app(CertificatesManager::class);  // the facade root
$certificates = certificates();                   // the helper — the same instance

certificates()->renew('shop.example.com');
```

## Metóda fasády → akcia

Každá akcia je v RoundlyConsulting\\Certificates\\Actions ako final readonly trieda s injektovaním cez konštruktor. Všetky sú dostupné z fasády; žiadna nie je interná:

| Metóda fasády | Akcia | execute() |
| --- | --- | --- |
| `issue(), issueIfMissing(), generate(), for()->issue()` | `IssueCertificateAction` | `(IssueCertificateData $data, ?string $connection = null): Certificate` |
| `renew(), for()->renew()` | `RenewCertificateAction` | `(Certificate $certificate): Certificate` |
| `renewDue()` | `RenewDueCertificatesAction` | `(?int $thresholdDays = null, bool $queue = false, ?string $connection = null): RenewalReport` |
| `revoke(), for()->revoke()` | `RevokeCertificateAction` | `(Certificate $certificate, ?string $reason = null): Certificate` |
| `expire(), for()->expire()` | `ExpireCertificateAction` | `(Certificate $certificate): Certificate` |
| `sync()` | `SyncCertificatesAction` | `(?string $driver = null, ?string $connection = null): int` |
| `prune()` | `PruneCertificatesAction` | `(int $days = 30, CertificateStatus\|string\|null $status = null, ?string $connection = null): int` |
| `renewLater(), for()->renewLater()` | — (odošle RenewCertificateJob) | Job spustí RenewCertificateAction. |

Manager pri každom volaní získa akciu z kontajnera, takže väzba v kontajneri, ktorá akciu nahradí, platí pre fasádu, rukoväť aj príkazy. IssueCertificateAction, RenewDueCertificatesAction, SyncCertificatesAction a PruneCertificatesAction prijímajú pripojenie registra ako posledný argument; ostatné pracujú s odovzdaným Certificate. IssueCertificateAction prijíma DTO IssueCertificateData:

```php
use RoundlyConsulting\Certificates\Actions\IssueCertificateAction;
use RoundlyConsulting\Certificates\Actions\RenewDueCertificatesAction;
use RoundlyConsulting\Certificates\DataTransferObjects\IssueCertificateData;

$certificate = app(IssueCertificateAction::class)->execute(
    IssueCertificateData::make('shop.example.com'),
    'tenant', // optional registry connection
);

$report = app(RenewDueCertificatesAction::class)->execute(7, queue: true, connection: 'tenant');
```

Certificates::fake() nahradí aj väzbu v kontajneri, takže managery injektované cez konštruktor sa zaznamenávajú rovnako ako volania fasády. Priame volanie akcie manager obchádza — a s ním aj fake.

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