---
title: "DI a akcie — Media Library for Laravel | Roundly"
description: "Bez fasády: injektujte MediaLibraryManager alebo zavolajte jednoúčelovú akciu — mapa metód fasády na akcie."
url: https://roundly-consulting.com/sk/open-source/navody/media-library-for-laravel/bez-fasady
language: sk
---

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

[Media Library for Laravel](https://roundly-consulting.com/sk/open-source/navody/media-library-for-laravel.md)

# DI a akcie

Fasáda je odporúčaná voľba, nie jediná cesta. Rovnaký kód spúšťajú tri vstupy: fasáda MediaLibrary (najkratší zápis), manažér RoundlyConsulting\\MediaLibrary\\MediaLibraryManager — koreň fasády, singleton v kontajneri s aliasom media — injektovaný cez konštruktor (rovnaké API, explicitná závislosť, žiadne statické volania) a akcie (jednoúčelové triedy s execute(), ktoré skladáte do vlastných akcií, jobov a príkazov).

## Injektovanie manažéra

```php
use RoundlyConsulting\MediaLibrary\MediaLibraryManager;

final class AvatarController
{
    public function __construct(private MediaLibraryManager $media) {}

    public function store(Request $request): Media
    {
        return $this->media->for($request->user())->addFromRequest('avatar')->toBucket('avatar');
    }
}
```

## Volanie akcie

```php
use RoundlyConsulting\MediaLibrary\Actions\MoveMediaAction;
use RoundlyConsulting\MediaLibrary\Actions\RegenerateVariantsAction;

app(MoveMediaAction::class)->execute($media, $otherUser, 'gallery', 'cold');
app(RegenerateVariantsAction::class)->execute($media, only: ['thumb'], force: true);
```

## Metóda fasády → akcia

| Metóda fasády | Akcia |
| --- | --- |
| `add*() / draft() → toBucket()` | `AddMediaAction` |
| `attach()` | `AttachMediaAction` |
| `bindDraft()` | `BindDraftMediaAction` |
| `move() / moveToDisk()` | `MoveMediaAction` |
| `moveVariantsToDisk()` | `MoveMediaVariantsAction` |
| `copy()` | `CopyMediaAction` |
| `replace()` | `ReplaceMediaAction` |
| `delete() / clear() / clearBucket()` | `DeleteMediaAction` |
| `regenerate() / variants()->regenerate()` | `RegenerateVariantsAction` |
| `pruneDrafts()` | `PruneDraftsAction` |
| `remote()->fetch()` | `FetchRemoteUrlAction` |
| `remote()->vet()` | `VetRemoteUrlAction` |

- Každá zmena — z fasády, handlu for(), traitu či metódy modelu Media — prejde jedným slovesom manažéra, ktoré si z kontajnera vezme jednu akciu. Keď akciu v kontajneri prepíšete, zmena platí všade.
- MediaLibrary::fake() vymení manažéra aj v kontajneri, takže sa podvrhne aj injektovaný manažér. Priame volanie akcie fake obchádza.
- remote() a jeho dve akcie nič neukladajú, preto ich fake ponechá skutočné — ich požiadavky obslúži Http::fake().
- GenerateVariantsAction je interný stavebný blok (vykreslí presne tie definície, ktoré dostane) — varianty pregenerujete cez RegenerateVariantsAction alebo MediaLibrary::regenerate().

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