---
title: "Rozšírenie — Certificates for Laravel | Roundly"
description: "Zapojte vlastného poskytovateľa certifikátov cez Certificates::extend(), ukladajte materiál cez CertificateStore a pridajte makrá managera."
url: https://roundly-consulting.com/sk/open-source/navody/certificates-for-laravel/rozsirenie
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)

# Rozšírenie

Kontrakt poskytovateľa je verejný. Implementujte CertificateProvider — a k nemu ProvisionsMultipleDomains a ReportsCertificateStatus, ak váš backend zvláda SAN a živý stav:

```php
use Illuminate\Support\Collection;
use RoundlyConsulting\Certificates\Contracts\CertificateProvider;
use RoundlyConsulting\Certificates\Contracts\ProvisionsMultipleDomains;
use RoundlyConsulting\Certificates\Contracts\ReportsCertificateStatus;
use RoundlyConsulting\Certificates\DataTransferObjects\CertificateStatusReport;

final class VaultCertificateProvider implements CertificateProvider, ProvisionsMultipleDomains, ReportsCertificateStatus
{
    public function get(): Collection { /* Collection<int, RemoteCertificate> */ }

    public function exists(string $name, string $domain): bool { /* ... */ }

    public function generate(string $name, string $domain): void { /* provision one domain */ }

    public function generateMany(string $name, array $domains): void { /* one SAN certificate */ }

    public function status(string $name, string $domain): CertificateStatusReport { /* live status + expiry */ }
}
```

Zaregistrujte ho cez fasádu — napríklad v metóde boot() service providera. Certificates::extend() pridá driver do CertificateProviderManager, správcu driverov za Certificates::driver(); potom ho zvoľte ako predvolený driver alebo pre konkrétne volanie:

```php
use RoundlyConsulting\Certificates\Contracts\CertificateProvider;
use RoundlyConsulting\Certificates\Facades\Certificates;

Certificates::extend('vault', fn (): CertificateProvider => new VaultCertificateProvider());

// CERTIFICATES_DRIVER=vault, or per call:
Certificates::for('app.example.com')->using('vault')->issue();
```

get() vracia value objekty RemoteCertificate (name, domain). status() je dôkazom vystavenia: report v stave failed, expired či revoked vystavenie alebo obnovu zmarí a pri vystavení report, ktorý ešte čaká, nechá záznam v stave requested. Hláste expiráciu, aby ju register mohol zapísať do expires\_at — bez nej použije validForDays — a odtlačok, podľa ktorého sa skutočná obnova odlíši od nezmeneného certifikátu. Bez odtlačku sa obnova uzná, len ak sa nahlásená expirácia posunie neskôr.

## Úložiská certifikátov

CertificateStore uchováva PEM materiál — koncový certifikát, kľúč a reťazec — ako StoredCertificate. Balík dodáva FilesystemCertificateStore; implementáciou kontraktu vo vlastnom poskytovateľovi môžete materiál ukladať inde:

```php
namespace RoundlyConsulting\Certificates\Contracts;

interface CertificateStore
{
    public function put(string $name, StoredCertificate $material): void;
    public function get(string $name): ?StoredCertificate;
    public function exists(string $name): bool;
    public function delete(string $name): void;
    public function names(): array; // list<string>
}
```

Kontajner viaže CertificateStore na FilesystemCertificateStore nad drivers.acme.store. Dodávané drivery acme a filesystem si vytvárajú vlastné úložisko zo svojich konfiguračných kľúčov, takže nové naviazanie kontraktu ich nepresmeruje.

## Makrá

CertificatesManager aj CertificateBuilder sú makrovateľné — pridajte vlastné doménové metódy, napríklad v AppServiceProvider::boot(). Makro managera zavoláte aj na fasáde:

```php
use RoundlyConsulting\Certificates\CertificatesManager;

CertificatesManager::macro('issueForTeam', function (Team $team, string $domain) {
    /** @var CertificatesManager $this */
    return $this->for($domain)->owner($team)->issue();
});

Certificates::issueForTeam($team, 'app.example.com');
```

Ak chcete namiesto toho zmeniť samotný prípad použitia, naviažte v kontajneri vlastnú akciu — manager získava každú akciu pri každom volaní (pozri 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 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)
