/laravel-messenger

Simple user messaging package for Laravel

Primary LanguagePHPMIT LicenseMIT

Build Status Code Climate Latest Version Total Downloads Software License

Laravel Messenger

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

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 acess 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'
]

Publish Assets

php artisan vendor:publish --provider="Cmgmyr\Messenger\MessengerServiceProvider"

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.

Note: if you already have a users table and run into any issues with foreign keys, you may have to make the id unsigned.

Migrate your database:

php artisan migrate

Add the trait to your user model:

use Cmgmyr\Messenger\Traits\Messagable;

class User extends Model {
	use Messagable;
}

Examples

Note: These examples use the illuminate/html package that is no longer included in Laravel 5 out of the box. Make sure you require this dependency in your composer.json file if you intend to use the example files.

Contributing?

Please format your code before creating a pull-request:

vendor/bin/php-cs-fixer fix --level psr2 .

Special Thanks

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