---
title: "Konfigurácia — Messages for Laravel | Roundly"
description: "Každý konfiguračný kľúč a jeho predvolená hodnota — modely, typy kľúčov, verejnosť, prílohy, roly, notifikácie, náhľady, prune a broadcasting."
url: https://roundly-consulting.com/sk/open-source/navody/messages-for-laravel/konfiguracia
language: sk
---

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

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

# Konfigurácia

Balík funguje bez akejkoľvek konfigurácie. Publikovaný config/messages.php (blok broadcasting opisuje sekcia Broadcasting):

```php
return [
    'models' => [
        'message' => RoundlyConsulting\Messages\Models\Message::class,
        'thread' => RoundlyConsulting\Messages\Models\Thread::class,
        'participant' => RoundlyConsulting\Messages\Models\Participant::class,
    ],

    'resources' => [
        'participant' => RoundlyConsulting\Messages\Http\Resources\MessageParticipantResource::class,
    ],

    'key_type' => env('MESSAGES_KEY_TYPE', 'bigint'),
    'primary_key_type' => env('MESSAGES_PRIMARY_KEY_TYPE', 'bigint'),

    'publicity' => [
        'public-by-default' => env('THREADS_PUBLIC', false),
        'everyone-can-join' => env('THREADS_EVERYONE_CAN_JOIN', false),
    ],

    'media' => [
        'attachments_bucket' => 'attachments',
        'disk' => env('MESSAGES_MEDIA_DISK', null),
        'private_disk' => env('MESSAGES_MEDIA_PRIVATE_DISK', 'local'),
        'visibility' => env('MESSAGES_MEDIA_VISIBILITY', 'private'),
        'accepted_mime_types' => [],
        'max_file_size' => null,
        'responsive_widths' => null,
        'warm_on_send' => true,
        'temporary_url_lifetime' => null,
        'cleanup_on_force_delete' => true,
    ],

    'system-messages' => [
        'enabled' => env('MESSAGES_SYSTEM_MESSAGES', false),
    ],

    'permissions' => [
        'enabled' => env('MESSAGES_PERMISSIONS', true),
    ],

    'notifications' => [
        'enabled' => env('MESSAGES_NOTIFICATIONS', false),
        'notification' => RoundlyConsulting\Messages\Notifications\NewMessageNotification::class,
        'channels' => ['database'],
    ],

    'preview' => [
        'length' => env('MESSAGES_PREVIEW_LENGTH', 120),
    ],

    'prune' => [
        'days' => env('MESSAGES_PRUNE_DAYS', 90),
    ],

    'broadcasting' => [
        'enabled' => env('REALTIME_MESSAGES', false),
        // channels + event names for threads, participants, typing and messages
    ],
];
```

## Všetky kľúče

| Kľúč | Predvolené | Env | Účel |
| --- | --- | --- | --- |
| `models.message / .thread / .participant` | modely balíka | — | Vymeniteľné modely — nasmerujte ich na vlastnú podtriedu. Trieda, ktorá nie je modelom balíka ani jeho podtriedou, vyhodí InvalidConfigurationException. |
| `resources.participant` | MessageParticipantResource | — | JSON resource, cez ktorý sa vykresľuje model účastníka alebo odosielateľa — participant v ParticipantResource, sender v MessageResource; dostane samotný model. Prázdna hodnota znamená predvolený resource; čokoľvek, čo nie je konkrétnou podtriedou JsonResource, vyhodí InvalidConfigurationException s názvom kľúča. |
| `primary_key_type` | bigint | `MESSAGES_PRIMARY_KEY_TYPE` | Typ kľúča vlastných tabuliek balíka a interných cudzích kľúčov (bigint, uuid, ulid — čokoľvek iné vyhodí výnimku). Zafixuje sa pri prvej migrácii. |
| `key_type` | bigint | `MESSAGES_KEY_TYPE` | Typ kľúča vašich modelov odosielateľov a účastníkov — určuje typ morph stĺpcov sender\_id / participant\_id a musí zodpovedať ich primárnemu kľúču (bigint, uuid, ulid — čokoľvek iné vyhodí výnimku). Zafixuje sa pri prvej migrácii. |
| `publicity.public-by-default` | false | `THREADS_PUBLIC` | Nové skupinové vlákna sú verejné, ak volajúci neurčí inak. |
| `publicity.everyone-can-join` | false | `THREADS_EVERYONE_CAN_JOIN` | Či sa do nového skupinového vlákna môže ktokoľvek pridať sám. |
| `media.attachments_bucket` | attachments | — | Skupina (bucket) media-library, do ktorej sa ukladajú prílohy. Prázdny názov sa považuje za nenastavený (platí predvolený); názov, ktorý nie je reťazcom, vyhodí výnimku. |
| `media.disk` | null | `MESSAGES_MEDIA_DISK` | Disk pre všetky prílohy bez ohľadu na viditeľnosť; null = podľa viditeľnosti (súkromné → media.private\_disk, verejné → predvolený disk media-library). Prázdna hodnota (MESSAGES\_MEDIA\_DISK=) sa považuje za nenastavenú, takže disk sa zvolí podľa viditeľnosti; názov, ktorý nie je reťazcom, vyhodí výnimku. |
| `media.private_disk` | local | `MESSAGES_MEDIA_PRIVATE_DISK` | Neverejný disk pre súkromné prílohy a ich varianty, keď je media.disk null — nikdy nie verejne servírovaný disk public. Prázdny názov sa považuje za nenastavený (local); názov, ktorý nie je reťazcom, vyhodí výnimku. |
| `media.visibility` | private | `MESSAGES_MEDIA_VISIBILITY` | private (len podpísané URL) alebo public; čokoľvek iné vyhodí výnimku. |
| `media.accepted_mime_types` | \[\] | — | Povolené mime typy, zoznam neprázdnych reťazcov; \[\] prijme akýkoľvek súbor. |
| `media.max_file_size` | null | — | Max. veľkosť prílohy v bajtoch, aspoň 1; null = predvolená hodnota media-library. |
| `media.responsive_widths` | null | — | Rebrík šírok pre obrázkové prílohy, zoznam kladných celých čísel; null = predvolený rebrík media-library. |
| `media.warm_on_send` | true | — | Pri odoslaní zaradiť do fronty generovanie variantov každej obrázkovej prílohy. |
| `media.temporary_url_lifetime` | null | — | Platnosť podpísaných URL príloh v minútach, aspoň 1; null = predvolená hodnota media-library. |
| `media.cleanup_on_force_delete` | true | — | Pri trvalom zmazaní a prune odstrániť súbory príloh; zrušené správy si ich ponechajú. |
| `system-messages.enabled` | false | `MESSAGES_SYSTEM_MESSAGES` | Pri pridaní, odchode a premenovaní zapisovať preložiteľné systémové správy. |
| `permissions.enabled` | true | `MESSAGES_PERMISSIONS` | Vynucovať roly vlastník/administrátor/člen v skupinových vláknach — roly sa zaznamenávajú v každom prípade. |
| `notifications.enabled` | false | `MESSAGES_NOTIFICATIONS` | Pri každom odoslaní notifikovať ostatných účastníkov vlákna. |
| `notifications.notification` | NewMessageNotification | — | Trieda notifikácie odoslaná príjemcom — podtrieda Notification, ktorá dostane správu v konštruktore; čokoľvek iné vyhodí výnimku. |
| `notifications.channels` | \['database'\] | — | Kanály, ktoré používa predvolená notifikácia (neprázdne reťazce). |
| `preview.length` | 120 | `MESSAGES_PREVIEW_LENGTH` | Max. dĺžka náhľadov a úryvkov citácií, aspoň 1. |
| `prune.days` | 90 | `MESSAGES_PRUNE_DAYS` | Predvolené obdobie uchovávania pre messages:prune a Messages::prune(), aspoň 1. |
| `broadcasting.enabled` | false | `REALTIME_MESSAGES` | Vysielať udalosti vlákien, účastníkov, správ a písania. |
| `broadcasting.*` | pozri Broadcasting | — | Názvy kanálov a aliasy udalostí — každý reťazec; prázdna hodnota sa považuje za nenastavenú (platí názov z balíka), hodnota, ktorá nie je reťazcom, vyhodí výnimku. |

## Prostredie (env)

Prepínače, ktoré budete meniť najčastejšie, sú riadené cez env, takže konfiguráciu publikujete len zriedka:

```bash
MESSAGES_KEY_TYPE=bigint
MESSAGES_PRIMARY_KEY_TYPE=bigint
THREADS_PUBLIC=false
THREADS_EVERYONE_CAN_JOIN=false
MESSAGES_MEDIA_PRIVATE_DISK=local
MESSAGES_MEDIA_VISIBILITY=private
MESSAGES_SYSTEM_MESSAGES=true
MESSAGES_PERMISSIONS=true
MESSAGES_NOTIFICATIONS=true
MESSAGES_PREVIEW_LENGTH=120
MESSAGES_PRUNE_DAYS=90
REALTIME_MESSAGES=true
```

key\_type a primary\_key\_type nastavte pred publikovaním a spustením migrácií — obe hodnoty sa čítajú počas migrácie.

## Logické prepínače

Každý logický (bool) prepínač sa číta ako boolean, takže hodnoty v .env znamenajú presne to, čo hovoria — true, 1, on a yes ho zapnú; false, 0, off a no ho vypnú:

```bash
MESSAGES_PERMISSIONS=1    # true / 1 / on / yes — enforce roles
THREADS_PUBLIC=off        # false / 0 / off / no — keep new threads private
```

Prázdna hodnota (THREADS\_PUBLIC=) sa považuje za nenastavenú, takže platí predvolená. Čokoľvek iné vyhodí RoundlyConsulting\\PackageToolkit\\Exceptions\\InvalidConfigurationException namiesto toho, aby sa potichu prečítalo ako predvolená hodnota.

## Striktné hodnoty

Rovnako striktne sa čítajú aj všetky ostatné nastavenia. Nastavenie bez hodnoty — kľúč chýba, je null alebo je prázdny ako riadok MESSAGES\_PRUNE\_DAYS= v hostiteľskej aplikácii — použije svoju predvolenú hodnotu; voliteľné nastavenie (media.disk, media.max\_file\_size, media.temporary\_url\_lifetime) zostane nenastavené. Celé čísla prijímajú int alebo čistý celočíselný reťazec (každá env hodnota je reťazec): MESSAGES\_PRUNE\_DAYS=ninety či 12.5 vyhodí výnimku namiesto toho, aby sa z nich stala 0 — čo by pri prune.days znamenalo zmazanie všetkých správ. Názov broadcast kanála či udalosti, bucketu alebo disku musí byť reťazec; media.visibility musí byť private alebo public; trieda notifikácie musí byť podtriedou Notification; model musí byť modelom balíka alebo jeho podtriedou.

## Kontrola aktuálnej konfigurácie

php artisan about obsahuje sekciu Messages s nakonfigurovanými modelmi, typom kľúča, verejnosťou vlákien, vynucovaním rolí, systémovými správami, notifikáciami, broadcastingom, dĺžkou náhľadu, obdobím uchovávania a nastaveniami príloh. Zobrazuje len podobu konfigurácie — nikdy obsah správ ani účastníkov. Chybné nastavenie náhľadu, uchovávania, príloh či notifikácií sa zobrazí ako INVALID, 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/messages-for-laravel.md)
