Skip to content

langeuh/laravel-messenger

 
 

Repository files navigation

Build Status Scrutinizer Scrutinizer Coverage Latest Version Total Downloads Software License Get help on Codementor

Laravel Messenger

This package will allow you to add a full user messaging system into your Laravel application.

Leave some feedback

How are you using laravel-messenger?

Features

  • 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

Common uses

  • Open threads (everyone can see everything)
  • Group messaging (only participants can see their threads)
  • One to one messaging (private or direct thread)

Installation (Laravel 4.x)

Installation instructions for Laravel 4 can be found here.

Installation (Laravel 5.x)

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;
}

Examples

Example Projects

Contributing?

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 .

Security

If you discover any security related issues, please email Chris Gmyr instead of using the issue tracker.

Credits

Special Thanks

This package used AndreasHeiberg/laravel-messenger as a starting point.

About

Simple user messaging package for Laravel (4 & 5)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 90.8%
  • HTML 9.2%