This package will allow you to add a full user messaging system into your Laravel application.
How are you using laravel-messenger?
- Multiple conversations per user
- Optionally loop in additional users with each new message
- View the last message for each thread available
- Returns either all messages in the system, all messages associated to the user, or all message associated to the user with new/unread messages
- Return the users unread message count easily
- Very flexible usage so you can implement your own access control
- Open threads (everyone can see everything)
- Group messaging (only participants can see their threads)
- One to one messaging (private or direct thread)
Installation instructions for Laravel 4 can be found here.
composer require cmgmyr/messenger
Or place mannually in composer.json:
"require": {
"cmgmyr/messenger": "~2.0"
}
Run:
composer update
Add the service provider to config/app.php
under providers
:
'providers' => [
Cmgmyr\Messenger\MessengerServiceProvider::class,
],
Publish config:
php artisan vendor:publish --provider="Cmgmyr\Messenger\MessengerServiceProvider" --tag="config"
Update config file to reference your User Model:
config/messenger.php
Create a users
table if you do not have one already. If you need one, simply use this example as a starting point, then migrate.
(Optional) Define names of database tables in package config file if you don't want to use default ones:
'messages_table' => 'messenger_messages',
'participants_table' => 'messenger_participants',
'threads_table' => 'messenger_threads',
Publish migrations:
php artisan vendor:publish --provider="Cmgmyr\Messenger\MessengerServiceProvider" --tag="migrations"
Migrate your database:
php artisan migrate
Add the trait to your user model:
use Cmgmyr\Messenger\Traits\Messagable;
class User extends Authenticatable {
use Messagable;
}
Please format your code before creating a pull-request. This will format all files as specified in .php_cs
:
vendor/bin/php-cs-fixer fix .
If you discover any security related issues, please email Chris Gmyr instead of using the issue tracker.
This package used AndreasHeiberg/laravel-messenger as a starting point.