---
title: "Konfigurácia — Reviews for Laravel | Roundly"
description: "Každý konfiguračný kľúč a jeho predvolená hodnota — modely, typ kľúča, stupnica, moderovanie, agregáty, API resources a fotografie."
url: https://roundly-consulting.com/sk/open-source/navody/reviews-for-laravel/konfiguracia
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Reviews for Laravel](https://roundly-consulting.com/sk/open-source/navody/reviews-for-laravel.md)

# Konfigurácia

Balík funguje bez akejkoľvek konfigurácie. Publikovaný config/reviews.php v plnom znení:

```php
<?php

use RoundlyConsulting\Reviews\Enums\ReviewStatus;
use RoundlyConsulting\Reviews\Http\Resources\ReviewableResource;
use RoundlyConsulting\Reviews\Http\Resources\ReviewAuthorResource;
use RoundlyConsulting\Reviews\Models\Review;
use RoundlyConsulting\Reviews\Models\ReviewVote;
use RoundlyConsulting\Reviews\Moderation\NullModerator;

return [
    'model' => Review::class,
    'vote_model' => ReviewVote::class,

    'key_type' => env('REVIEWS_KEY_TYPE', 'bigint'),

    'min_rating' => env('REVIEWS_MIN_RATING', 1),
    'max_rating' => env('REVIEWS_MAX_RATING', 5),

    'default_status' => ReviewStatus::Pending->value,
    'auto_approve' => env('REVIEWS_AUTO_APPROVE', false),
    'reset_status_on_edit' => env('REVIEWS_RESET_STATUS_ON_EDIT', true),
    'one_per_author' => env('REVIEWS_ONE_PER_AUTHOR', false),

    'register_facade_alias' => env('REVIEWS_REGISTER_FACADE_ALIAS', true),

    'moderator' => NullModerator::class,
    'moderation' => [
        'banned_words' => array_values(array_filter(array_map(
            'trim',
            explode(',', (string) env('REVIEWS_BANNED_WORDS', '')),
        ))),
    ],

    'cache_aggregates' => env('REVIEWS_CACHE_AGGREGATES', false),

    'resources' => [
        'author' => ReviewAuthorResource::class,
        'reviewable' => ReviewableResource::class,
    ],

    'photos' => [
        'enabled' => env('REVIEWS_PHOTOS_ENABLED', true),
        'bucket' => env('REVIEWS_PHOTOS_BUCKET', 'photos'),
        'disk' => env('REVIEWS_PHOTOS_DISK'),
        'private_disk' => env('REVIEWS_PHOTOS_PRIVATE_DISK', 'local'),
        'max' => env('REVIEWS_PHOTOS_MAX', 5),
        'max_file_size' => env('REVIEWS_PHOTOS_MAX_FILE_SIZE', 5 * 1024 * 1024),
        'accepted_mime_types' => ['image/jpeg', 'image/png', 'image/webp', 'image/gif'],
        'responsive_widths' => [320, 640, 1024],
        'visibility' => env('REVIEWS_PHOTOS_VISIBILITY', 'public'),
        'warm_on_approval' => env('REVIEWS_PHOTOS_WARM_ON_APPROVAL', true),
    ],
];
```

## Všetky kľúče

| Kľúč | Predvolené | Env | Účel |
| --- | --- | --- | --- |
| `model` | Review::class | — | Model recenzie; nasmerujte ho na vlastnú podtriedu, ak ho chcete rozšíriť. Iná trieda vyhodí InvalidConfigurationException. |
| `vote_model` | ReviewVote::class | — | Model hlasu užitočnosti; nasmerujte ho na vlastnú podtriedu. Iná trieda vyhodí InvalidConfigurationException. |
| `key_type` | bigint | `REVIEWS_KEY_TYPE` | Typ kľúča polymorfných stĺpcov predmetu, autora a hlasujúceho — bigint, uuid alebo ulid (iná hodnota vyhodí InvalidConfigurationException). Číta sa pri spustení migrácií. |
| `min_rating` | 1 | `REVIEWS_MIN_RATING` | Najnižšie povolené hodnotenie, 0 – 255 (stĺpec rating je unsigned tinyint). |
| `max_rating` | 5 | `REVIEWS_MAX_RATING` | Najvyššie povolené hodnotenie, od min\_rating (aspoň 1) po 255. |
| `default_status` | pending | — | Stav, v ktorom recenzia skončí, keď ju moderátor nechá nerozhodnutú (a auto-approve je vypnuté). Hodnota, ktorá nie je ReviewStatus, vyhodí výnimku. |
| `auto_approve` | false | `REVIEWS_AUTO_APPROVE` | Nové — aj znova moderované upravené — recenzie hneď schváliť a moderátora preskočiť. |
| `reset_status_on_edit` | true | `REVIEWS_RESET_STATUS_ON_EDIT` | Pri úprave hodnotenia, nadpisu alebo textu vrátiť nerozhodnutú recenziu do default\_status (false: ponechať jej stav). Moderátor beží v oboch prípadoch. |
| `one_per_author` | false | `REVIEWS_ONE_PER_AUTHOR` | Zablokovať druhú nezmazanú recenziu od toho istého autora na ten istý predmet; odpovede vlastníka sa nepočítajú. Znova sa overuje zamykajúcim čítaním pod zámkom riadka autora. |
| `register_facade_alias` | true | `REVIEWS_REGISTER_FACADE_ALIAS` | Zaregistrovať globálny alias Reviews; iný reťazec sa použije ako názov aliasu. false/0/off/no (alebo výslovné null) ho vynechá; prázdna hodnota sa počíta ako nenastavená, takže sa alias zaregistruje. |
| `moderator` | NullModerator::class | — | ReviewModerator volaný pri vytvorení a pri úprave hodnotenia, nadpisu či textu; nahraďte ho WordListModerator alebo vlastným. Trieda, ktorá neimplementuje ReviewModerator, vyhodí výnimku. |
| `moderation.banned_words` | \[\] | `REVIEWS_BANNED_WORDS` | Zakázané slová oddelené čiarkou, pre ktoré WordListModerator recenziu zamietne. Ak ich nastavíte v PHP, musí to byť zoznam neprázdnych reťazcov. Položka s medzerou alebo interpunkciou (rip off, f\*ck) sa hľadá ako súvislý sled slov; položka bez jediného slova sa ignoruje. |
| `cache_aggregates` | false | `REVIEWS_CACHE_AGGREGATES` | Udržiavať cachované reviews\_count / reviews\_avg na zapojených modeloch. |
| `resources.author` | ReviewAuthorResource::class | — | JsonResource, cez ktorý ReviewResource vykreslí autora recenzie. Dostane model autora; nahraďte ho vlastným, ak chcete pridať meno či avatar — pozrite JSON resource. |
| `resources.reviewable` | ReviewableResource::class | — | JsonResource, cez ktorý sa rovnakým spôsobom vykreslí predmet recenzie. |
| `photos.enabled` | true | `REVIEWS_PHOTOS_ENABLED` | Hlavný vypínač fotografií; pri false sa skupina nedeklaruje a withPhoto() vyhodí výnimku. |
| `photos.bucket` | photos | `REVIEWS_PHOTOS_BUCKET` | Skupina médií, do ktorej sa fotografie ukladajú (reťazec; prázdna hodnota = nenastavená → photos). |
| `photos.disk` | null | `REVIEWS_PHOTOS_DISK` | Disk pre všetky fotografie. Nenastavená hodnota (null alebo prázdna) = podľa viditeľnosti: súkromné → photos.private\_disk, verejné → predvolený disk media-library. |
| `photos.private_disk` | local | `REVIEWS_PHOTOS_PRIVATE_DISK` | Neverejný disk pre súkromné fotografie a ich varianty, keď photos.disk nie je nastavený (reťazec; prázdna hodnota = nenastavená → local). |
| `photos.max` | 5 | `REVIEWS_PHOTOS_MAX` | Limit fotografií na recenziu, aspoň 0 (0 = bez limitu, len ak ho nastavíte výslovne); prekročenie vyhodí tooManyPhotos(). |
| `photos.max_file_size` | 5242880 | `REVIEWS_PHOTOS_MAX_FILE_SIZE` | Najväčší povolený súbor v bajtoch (5 MB), aspoň 0 (0 = bez limitu na fotografiu, len ak ho nastavíte výslovne). |
| `photos.accepted_mime_types` | jpeg, png, webp, gif | — | Povolené mime typy obrázkov (\[\] prijme akýkoľvek typ). |
| `photos.responsive_widths` | \[320, 640, 1024\] | — | Rebrík responzívnych šírok z kladných celých čísel (null použije predvolený rebrík media-library). |
| `photos.visibility` | public | `REVIEWS_PHOTOS_VISIBILITY` | public alebo private (presne, malými písmenami); čokoľvek iné vyhodí výnimku, namiesto aby fotografie zverejnilo. |
| `photos.warm_on_approval` | true | `REVIEWS_PHOTOS_WARM_ON_APPROVAL` | Po schválení recenzie zaradiť generovanie variantov do fronty. |

Každý prepínač typu bool sa číta prísne: true/1/on/yes ho zapne, false/0/off/no vypne, prázdna hodnota (REVIEWS\_PHOTOS\_ENABLED=) sa počíta ako nenastavená, takže platí predvolená hodnota, a čokoľvek iné (napríklad REVIEWS\_PHOTOS\_ENABLED=disabled) vyhodí InvalidConfigurationException, namiesto aby sa potichu použila predvolená hodnota.

Rovnako prísne sa číta každé ďalšie nastavenie. Nenastavené nastavenie — chýbajúce, null alebo prázdne ako REVIEWS\_PHOTOS\_DISK= u hostiteľa — dostane predvolenú hodnotu (photos.disk zostane nenastavený). Celé čísla prijímajú int alebo obyčajný celočíselný reťazec („10“ — každá env hodnota je reťazec); five, 5.5 či 1e3 vyhodia výnimku, namiesto aby sa z nich stala 0 — čo by pri photos.max znamenalo neobmedzený počet fotografií. Preklep v photos.visibility, napríklad privat, vyhodí výnimku, namiesto aby fotografie zverejnil, a výnimku vyhodí aj nereťazcový názov skupiny alebo disku, nastavenie mime typov či šírok, ktoré nie je zoznam, alebo neplatná položka v ňom. Hodnota resources.\*, ktorá nie je konkrétnou podtriedou JsonResource (trieda modelu, samotný JsonResource, abstraktná či neexistujúca trieda), vyhodí pri prvom vykreslení InvalidConfigurationException s názvom kľúča.

## Prostredie (env)

Väčšina prepínačov sa riadi cez env, takže súbor publikovať väčšinou nemusíte:

```bash
REVIEWS_MIN_RATING=1
REVIEWS_MAX_RATING=10
REVIEWS_AUTO_APPROVE=false
REVIEWS_ONE_PER_AUTHOR=true
REVIEWS_BANNED_WORDS=spam,scam
REVIEWS_CACHE_AGGREGATES=true
REVIEWS_PHOTOS_MAX=3
REVIEWS_PHOTOS_VISIBILITY=private
```

REVIEWS\_BANNED\_WORDS sa rozdelí podľa čiarok a oreže, medzery okolo slov teda neprekážajú.

## Kontrola aktuálnej konfigurácie

Balík pridáva do príkazu about v Laraveli sekciu Reviews — modely, stupnicu, prepínače moderovania, agregáty a nastavenia fotografií:

```bash
php artisan about --only=reviews
```

Vypisuje len prepínače, hranice a prítomnosť hodnôt: zoznam zakázaných slov sa zobrazí ako počet a disk fotografií ako SET alebo DEFAULT, takže výstup môžete bezpečne vložiť do tiketu. Chybná stupnica hodnotení, predvolený stav, zoznam zakázaných slov či nastavenie fotografií sa zobrazí ako INVALID a príkaz nezlyhá.

## 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](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## 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.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/reviews-for-laravel.md)
