---
title: "DI a akcie — Translatable for Laravel | Roundly"
description: "Namiesto fasády injektujte TranslationManager — rovnaké API ako explicitná závislosť. Akčné triedy balík nemá: ide o čisté výpočty."
url: https://roundly-consulting.com/sk/open-source/navody/translatable-for-laravel/bez-fasady
language: sk
---

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

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

# DI a akcie

Balík má dva rovnocenné vstupné body. Fasáda Translatable je najkratšia a odporúčaná voľba. Manager RoundlyConsulting\\Translatable\\Support\\TranslationManager je koreňom fasády: je zaregistrovaný ako singleton, injektujete ho cez konštruktor a ponúka identické API ako explicitnú závislosť, bez statických volaní:

```php
use RoundlyConsulting\Translatable\Support\TranslationManager;

final class UpdateTopicTranslations
{
    public function __construct(private TranslationManager $translations) {}

    public function handle(Topic $topic, array $input): void
    {
        $topic->setTranslations('name', $this->translations->fromInput($input['name'] ?? []));
    }
}
```

Obe cesty vedú k tomu istému singletonu:

```php
use RoundlyConsulting\Translatable\Facades\Translatable;
use RoundlyConsulting\Translatable\Support\TranslationManager;

app(TranslationManager::class) === Translatable::getFacadeRoot(); // true — one singleton
```

## Bez akčných tried

Balík nemá akčné triedy, ktoré by ste skladali do vlastných jobov či príkazov: robí len čisté výpočty nad mapami jazykov — žiadny zápis do databázy, fronta, e-mail, udalosť ani HTTP volanie — a tie obslúži priamo manager. Z vlastných akcií preto volajte manager (alebo fasádu).

## Výmena managera

TranslationManager zámerne nie je final — je to jediné navrhnuté miesto na rozšírenie balíka. Rozšírte ho, prepíšte metódu a vymeňte ho: ostatné jeho metódy prepis zohľadnia a podtriedu použijú aj volania fasády a každý model s HasTranslations:

```php
use RoundlyConsulting\Translatable\Facades\Translatable;
use RoundlyConsulting\Translatable\Support\TranslationManager;

Translatable::swap(new class extends TranslationManager
{
    public function supported(): array
    {
        return ['en', 'sk', 'de'];
    }
});

Translatable::supported();                        // ['en', 'sk', 'de']
Translatable::fromInput(['de' => 'Investieren']); // ['de' => 'Investieren']
$topic->missingLocales('name');                   // now also reports 'de'
```

## Interné triedy

Support\\FallbackResolver a Support\\LocaleGuard sú interné (@internal) stavebné bloky — namiesto nich volajte Translatable::resolve(), ensureLocale() alebo isSupported(). Kontrola formátu kľúča jazyka zostáva pevnou poistkou pri každom zápise aj v každom scope a nikdy nezávisí od metódy, ktorú prepíšete.

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