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 Likes (najkratší zápis), manažér RoundlyConsulting\Likes\LikeManager — koreň fasády — 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\Likes\LikeManager;

final class LikePost
{
    public function __construct(private LikeManager $likes) {}

    public function __invoke(User $user, Post $post): bool
    {
        return $this->likes->actor($user)->as('love')->like($post);
    }
}

Volanie akcie

use RoundlyConsulting\Likes\Actions\LikeAction;
use RoundlyConsulting\Likes\Actions\LikeManyAction;
use RoundlyConsulting\Likes\DataTransferObjects\LikeData;

app(LikeAction::class)->execute(new LikeData($user, $post, 'love'));
app(LikeManyAction::class)->execute($user, [$post, $comment], 'love');

Metóda fasády → akcia

Metóda fasády / builderaAkcia
like()LikeAction
unlike()UnlikeAction
toggle()ToggleLikeAction
react()SwitchReactionAction
likeMany()LikeManyAction
unlikeMany()UnlikeManyAction
  • LikeAction, UnlikeAction, ToggleLikeAction a SwitchReactionAction prijímajú DTO LikeData — aktéra, cieľový model a voliteľný typ, overený voči povolenému zoznamu reactions. LikeManyAction a UnlikeManyAction prijímajú aktéra, iterovateľný zoznam cieľových modelov a voliteľný typ.
  • Akcia aktéra sama neurčí — odovzdajte ho explicitne.
  • Likes::fake() nahradí aj injektovaný LikeManager, takže zaznamená aj kód s injekciou cez konštruktor. Priame volanie akcie záznam vo fake obíde.

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.