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

Fasáda Reviews

Všetko, čo balík robí, je na jedno volanie na fasáde Reviews — RoundlyConsulting\Reviews\Facades\Reviews, zaregistrovanej aj ako globálny alias Reviews:

use RoundlyConsulting\Reviews\DataTransferObjects\CreateReviewData;
use RoundlyConsulting\Reviews\DataTransferObjects\UpdateReviewData;
use RoundlyConsulting\Reviews\Facades\Reviews;

// One subject: author a review, read its aggregates, list its reviews
Reviews::for($product)->by($user)->rating(5)->content('Great')->create();
Reviews::for($product)->summary();            // RatingSummary DTO
Reviews::for($product)->average();            // ?float
Reviews::for($product)->count();              // int (approved)
Reviews::for($product)->distribution();       // [5 => 120, 4 => 80, ...]
Reviews::for($product)->photoCount();         // photos on approved reviews
Reviews::for($product)->reviewsWithPhotos();  // approved reviews that carry a photo
Reviews::for($product)->query()->approved()->mostHelpful()->paginate();

// Every review (swap-aware) — e.g. the moderation queue
Reviews::query()->pending()->latestFirst()->paginate();

// Act on one review
Reviews::create(new CreateReviewData(author: $user, reviewable: $product, rating: 5));
Reviews::approve($review);
Reviews::reject($review, 'Spam');
Reviews::update($review, new UpdateReviewData(content: 'Edited'));
Reviews::delete($review);
Reviews::respond($review, $owner, 'Thanks!');
Reviews::vote($review, $user, helpful: true);
Reviews::removeVote($review, $user);
Reviews::verify($review);
Reviews::unverify($review);

// Tests
$fake = Reviews::fake();

Metódy

MetódaVrátiUrobí
for(Model $reviewable)ReviewableScopeObmedzí nasledujúce volania na jeden predmet.
for(…)->by(Model $author)PendingReviewZačne recenziu predmetu; ukončíte ju cez ->create().
for(…)->summary() / average() / count() / distribution() / photoCount() / reviewsWithPhotos()aggregatesLen schválené recenzie predmetu najvyššej úrovne.
for(…)->query()Builder<Review>Recenzie predmetu najvyššej úrovne v každom stave (odpovede cez $review->responses).
query()Builder<Review>Každá recenzia na nastavenom modeli — každý predmet, stav aj odpoveď.
create(CreateReviewData $data)ReviewVytvorí recenziu z DTO — posledný krok buildera.
approve() / reject() / update() / delete()Review / voidŽivotný cyklus moderovania.
respond(Review, Model $author, string $content, ?string $title)ReviewVytvorí odpoveď vlastníka.
vote(Review, Model $voter, bool $helpful) / removeVote(Review, Model $voter)ReviewVote / boolHlasy užitočnosti (removeVote() vráti false, ak hlas neexistoval).
verify(Review) / unverify(Review)ReviewNastaví alebo zruší príznak overenia; spustí ReviewVerified.
fake()ReviewsFakeNasadí zaznamenávajúci fake — pozrite Testovanie.

Jeden predmet: Reviews::for()

for($subject) vráti ReviewableScope s predmetom pevne daným pri vytvorení — nič, čo vráti, sa nedostane k riadkom iného predmetu. Jeho agregáty počítajú len schválené recenzie najvyššej úrovne; jeho query() vráti recenzie predmetu najvyššej úrovne v každom stave. Reviews::query() je širší dopyt nad všetkými recenziami nastaveného modelu, ktorý rešpektuje jeho výmenu.

Pomocné metódy modelov idú cez ten istý manažér

$product->addReview(), agregáty z HasReviews, $review->respond(), $review->markVerified() / markUnverified() aj pomocné metódy CanVoteOnReviews delegujú na ten istý manažér. Prepísanie v kontajneri preto platí všade a Reviews::fake() vidí každé volanie.

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.