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

Open source

Likes for Laravel

Inštalácia
composer require roundly-consulting/likes-for-laravel
Vyžaduje: PHP ^8.4 · Laravel ^12.0|^13.0

Prehľad

Natívne páčiky a reakcie pre Laravel. Páčiky môže dávať aj dostávať akýkoľvek Eloquent model a jediná polymorfná tabuľka likes eviduje, komu sa čo páči — s idempotentnými operáciami, voliteľnými typovanými reakciami, zoradením podľa popularity a trendov, stavom feedu v jednom dopyte a udalosťami, na ktoré môže vaša aplikácia reagovať. Licencia MIT, postavené len na komponentoch Laravelu a balíku Roundly package toolkit — bez závislostí tretích strán.

Čo získate

Akýkoľvek aktér, akýkoľvek cieľ

Používatelia, tímy či akýkoľvek Eloquent model môžu dávať páčiky inému modelu — jedna polymorfná tabuľka likes eviduje, komu sa čo páči.

Idempotentné operácie

like(), unlike() a toggleLike() vracajú aktuálny stav; opakovanie nič nezmení a opätovný páčik obnoví pôvodný záznam.

Typované reakcie

Zapnite love, wow alebo vlastnú sadu cez povolený zoznam a zmeňte reakciu na mieste s jasnou udalosťou ReactionChanged.

Feedy bez N+1

withLikedState() a withLikesCount() načítajú stav aktuálneho používateľa aj počty pre celú stránku jedným dopytom.

Vážené skóre a trendy

Zoraďujte podľa váženého skóre reakcií alebo podľa trendov zvýhodňujúcich nedávnu aktivitu — prenosné SQL pre SQLite, MySQL aj PostgreSQL.

Udalosti a voliteľný broadcasting

Liked, Unliked a ReactionChanged vznikajú len pri skutočnej zmene a po zapnutí sa dajú vysielať cez Laravel Echo.

Nástroje na testovanie

Zaznamenávajúci Likes::fake(), pomocníky pre aktéra, Pest matchery a factory modelu pre vaše vlastné testy.

Dokumentácia

Inštalácia

Inštalácia cez Composer, publikovanie a spustenie migrácie likes — pre kľúče UUID či ULID alebo iný názov tabuľky najprv publikujte konfiguráciu.

Konfigurácia

Každý konfiguračný kľúč a jeho predvolená hodnota — model, tabuľka, typ kľúča, reakcie, aktér, váhy, trendy a broadcasting.

Databázová schéma a typy kľúčov

Jediná polymorfná tabuľka likes, soft deletes, typy kľúčov UUID/ULID a nahradenie modelu Like vlastným.

Modely a traity

HasLikes pre modely, ktoré dostávajú páčiky, GivesLikes pre aktérov; relácie, kontrakt Likeable a model Like.

Fasáda Likes

Páčiky jedným riadkom za prihláseného používateľa, builder actor()/as(), čítací handle Likes::for() a vlastné určenie aktéra.

DI a akcie

Bez fasády: injektujte LikeManager alebo zavolajte jednoúčelovú akciu s DTO LikeData — mapa metód fasády na akcie.

Dávanie, odoberanie a prepínanie páčikov

Idempotentné like, unlike a toggle cez fasádu Likes alebo trait modelu, ktoré vracajú aktuálny stav, plus hromadné likeMany().

Stav a počty

Overte cez Likes::has() a Likes::for(), či aktér dal modelu páčik, a spočítajte páčiky — naživo alebo z prednačítaného počtu.

Scopy dopytov

Zoraďte podľa počtu páčikov, filtrujte, čo sa aktérovi páčilo či nepáčilo, a načítajte likes_count — skladateľne a s typmi.

Stav vo feede bez N+1

withLikedState() pridá is_liked a liked_reaction pre aktuálneho používateľa celej stránke feedu jedným dopytom — aj pre hostí.

Vážené skóre a trendy

Zoraďte podľa váženého skóre reakcií alebo podľa trendov s dôrazom na nedávnu aktivitu — prenosné SQL pre SQLite, MySQL aj PostgreSQL.

Typované reakcie

Zmeňte obyčajné páčiky na typované reakcie — love, wow, laugh alebo vlastnú sadu — strážené povoleným zoznamom v konfigurácii.

Zmena reakcie

react() drží jednu aktívnu reakciu na aktéra a položku, mení ju na mieste a spúšťa len ReactionChanged.

Prehľad reakcií

Likes::for()->summary() vráti súčet, počty podľa typu, najčastejšiu reakciu aj reakciu aktuálneho používateľa pre lišty reakcií.

Čo sa aktérovi páčilo

likedItems() a likesOf() vracajú skutočnú reláciu MorphToMany modelov, ktoré sa aktérovi páčia — s eager loadingom aj stránkovaním.

Blade direktíva

Podmienka @liked vykreslí správny stav srdiečka pre aktuálneho alebo explicitného aktéra a typ reakcie.

Výstup pre JSON API

LikeResource a toLikeArray() vrátia počet páčikov, stav aktuálneho používateľa a rozpis podľa reakcií ako JSON.

Udalosti

Liked, Unliked a ReactionChanged vznikajú len pri skutočnej zmene, jedna udalosť na zmenu — plus voliteľný uložený stĺpec s počtom.

Broadcasting

Voliteľné vysielanie udalostí Liked, Unliked a ReactionChanged cez Laravel Echo na kanáloch likes.{morph}.{id}.

Výnimky

InvalidReactionTypeException, NoAuthenticatedActorException a ich spoločný základ LikesException.

Testovanie

Likes::fake() zaznamená každý páčik, odobratie aj reakciu a záznamy pritom naozaj zapíše — plus pomocníky pre aktéra, Pest matchery a factory.

Požiadavky

PHP 8.4+, Laravel 12 alebo 13 a Roundly package toolkit — žiadne PHP rozšírenia ani balíky tretích strán.

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.