NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky

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

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

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ádyAkcia
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
  • 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.
  • 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

Odoslaním daru súhlasíte s našimi podmienkami prijímania darov.

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.