Všetky balíky
Reviews for Laravel
DI a akcie
Fasáda je odporúčaná predvoľba, nie jediný vstup. Tri rovnocenné vstupné body spúšťajú ten istý kód:
- Fasáda Reviews — najkratší zápis, ktorý používa celá táto dokumentácia.
- Manažér — RoundlyConsulting\Reviews\ReviewsManager, Macroable singleton v kontajneri a koreň fasády. Injektujte ho: rovnaké API, explicitná závislosť a žiadne statické volania.
- Akcie — každá plochá operácia si z kontajnera vezme jednu malú triedu akcie. Zavolajte na nej execute() a recenzie zapojíte do vlastných akcií, jobov a príkazov.
Injektovanie manažéra
use RoundlyConsulting\Reviews\ReviewsManager;
final class ProductReviewController
{
public function __construct(private ReviewsManager $reviews) {}
public function store(Product $product, Request $request): Review
{
return $this->reviews->for($product)->by($request->user())->rating(5)->create();
}
}Reviews::fake() nahradí aj injektovanú inštanciu — ReviewsFake dedí z ReviewsManager, takže trieda s type-hintom na manažér dostane v testoch zaznamenávajúci fake.
Volanie akcie
use RoundlyConsulting\Reviews\Actions\CreateReview;
use RoundlyConsulting\Reviews\Actions\MarkReviewVerified;
use RoundlyConsulting\Reviews\DataTransferObjects\CreateReviewData;
$review = app(CreateReview::class)->execute(new CreateReviewData(
author: $user,
reviewable: $restaurant,
content: 'Great place',
title: 'Loved it',
rating: 5,
meta: collect(['visit' => 'dinner']),
));
app(MarkReviewVerified::class)->execute($review, verified: true);Metóda fasády → akcia
| Metóda fasády | Akcia | Signatúra | Spustí |
|---|---|---|---|
Reviews::create($data) — and for()->by()->create() | CreateReview | execute(CreateReviewData $data): Review | ReviewCreated |
Reviews::approve($review) | ApproveReview | execute(Review $review): Review | ReviewApproved |
Reviews::reject($review, $reason) | RejectReview | execute(Review $review, ?string $reason = null): Review | ReviewRejected |
Reviews::update($review, $data) | UpdateReview | execute(Review $review, UpdateReviewData $data): Review | ReviewUpdated |
Reviews::delete($review) | DeleteReview | execute(Review $review): void | ReviewDeleted |
Reviews::respond($review, $author, $content, $title) | RespondToReview | execute(Review $parent, Model $author, string $content, ?string $title = null): Review | ReviewResponded |
Reviews::vote($review, $voter, $helpful) | VoteOnReview | execute(Review $review, Model $voter, bool $helpful = true): ReviewVote | ReviewVoted |
Reviews::removeVote($review, $voter) | RemoveReviewVote | execute(Review $review, Model $voter): bool | ReviewVoteRemoved |
Reviews::verify($review) / unverify($review) | MarkReviewVerified | execute(Review $review, bool $verified = true): Review | ReviewVerified |
- CreateReviewData nesie author, reviewable, content, title, rating, meta, approved, verified a photos; UpdateReviewData nesie title, content, rating, meta a verified, pričom null znamená „nemeniť“.
- ValidatesRating (kontrola rozsahu hodnotenia) a RecountReviewVotes (denormalizované počty hlasov) sú @internal stavebné bloky týchto akcií — nie sú určené na použitie v aplikácii.
- Akcia zavolaná priamo obchádza manažér, preto ju Reviews::fake() nezaznamená.
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 kryptomienOdoslaní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.