cmgmyr / laravel-messenger by cmgmyr

Simple user messaging tool for Laravel
1,949,766
2,465
97
Package Data
Maintainer Username: cmgmyr
Maintainer Contact: cmgmyr@gmail.com (Chris Gmyr)
Package Create Date: 2014-10-29
Package Last Update: 2024-03-18
Home Page:
Language: PHP
License: MIT
Last Refreshed: 2024-11-19 03:08:48
Package Statistics
Total Downloads: 1,949,766
Monthly Downloads: 28,114
Daily Downloads: 1,141
Total Stars: 2,465
Total Watchers: 97
Total Forks: 517
Total Open Issues: 2

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)

Laravel Versions

Laravel | Messenger --- | --- 4.* | 1.* 5.0-5.4 | <= 2.16.2 5.5+ | 2.*

Installation (Laravel 4.x - no longer actively supported)

Installation instructions for Laravel 4 can be found here.

Installation (Laravel 5.x)

composer require cmgmyr/messenger

Or place manually 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,
],

Note: If you are using Laravel 5.5, this step is unnecessary. Laravel Messenger supports Package Discovery.

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, the default Laravel migration will be satisfactory.

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