Inštalácia
Pridajte balík. Service provider aj alias fasády Messages sa načítajú automaticky — bez manuálnej registrácie:
composer require roundly-consulting/messages-for-laravelComposer zároveň nainštaluje tri sesterské balíky, na ktorých Messages stojí — enums-for-laravel, media-library-for-laravel a package-toolkit-for-laravel. Samostatne ich inštalovať ani konfigurovať netreba.
Najprv typ kľúča
Ak majú vaše zúčastnené modely (zvyčajne User) kľúče uuid alebo ulid, nastavte to ešte pred migráciou — zapíše sa priamo do schémy (pozri Typy kľúčov):
MESSAGES_KEY_TYPE=uuid # bigint (default) | uuid | ulid — your models' primary key typeMigrácie len na publikovanie
Migrácie sa nenačítavajú automaticky — samotné php artisan migrate nevytvorí nič, kým ich nepublikujete. Messages ukladá prílohy cez media-library-for-laravel, ktorá sa nainštaluje spolu s ním a jej tabuľka media sa tiež len publikuje — publikujte obe a potom migrujte:
php artisan vendor:publish --tag="media-migrations"
php artisan vendor:publish --tag="messages-migrations"
php artisan migrateAk media-migrations vynecháte, prvé odoslanie zlyhá, pretože každé odoslanie hľadá prílohy správy bez ohľadu na to, či nejaké má:
no such table: mediaJedenásť migrácií balíka messages sa uloží do database/migrations s časovými pečiatkami, ktoré zachovávajú poradie závislostí medzi tabuľkami, takže sa správne zaradia medzi vaše vlastné. Vytvoria tabuľky messaging_threads, messaging_participants a messaging_messages — všetky so soft deletes a konfigurovateľným typom kľúča.
Voliteľné publikovanie
php artisan vendor:publish --tag="messages-config"
php artisan vendor:publish --tag="messages-translations"
php artisan vendor:publish --tag="messages-resources"
php artisan vendor:publish --tag="messages-notifications"- messages-config — config/messages.php; každý kľúč má predvolenú hodnotu z env, takže ho potrebujete len na prepísanie.
- messages-translations — texty systémových správ, náhľadov a výnimiek.
- messages-resources — upraviteľné kópie JSON API resources v App\Http\Resources\Messages (app/Http/Resources/Messages).
- messages-notifications — upraviteľná kópia notifikácie o novej správe v App\Notifications\Messages (app/Notifications/Messages).
Ďalšie kroky
- Každému modelu, ktorý posiela správy alebo sa zúčastňuje konverzácií, pridajte rozhranie ParticipatesInMessaging a trait HasMessaging.
- Priamu konverzáciu otvorte cez Messages::direct(), skupinu cez Messages::start() — alebo cez conversationWith() a startConversationWith() z traitu.
- Podľa potreby zapnite cez env broadcasting, notifikácie a systémové správy.
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.