dev-master
9999999-devThe package provides an easy way to implementing a messages manager into your laravel project
MIT
The Requires
by Oussama BOUISFI
laravel messages manager chat ousamox oussama bouisfi
Wallogit.com
2017 © Pedro Peláez
The package provides an easy way to implementing a messages manager into your laravel project
This package support only Laravel 5.x versions, (*1)
Add MessagesManager package to your composer.json file to require it :, (*2)
require : {
"laravel/framework": xxxx,
...
"ousamox/messages-manager": "master"
}
Update Composer :, (*3)
$ composer update
The next required step is to add the service provider to config/app.php :, (*4)
'providers' => array(
...
'Ousamox\MessagesManager\Providers\MessagesManagerProvider'
)
Alias the PushNotification facade by adding it to the aliases array in the config/app.php file :, (*5)
'aliases' => array(
...
'OMessage' => 'Ousamox\MessagesManager\Facades\OMessage'
)
Publish OMM config and migration files in your application with :, (*6)
$ php artisan vendor:publish --tag=omm
This will generate a config file in config/omm.php like this :, (*7)
return [
'models' => [
'channel' => [
'table_name' => 'OMM_CHANNELS',
'class' => \Ousamox\MessagesManager\Models\Channel::class,
],
'device' => [
'table_name' => 'OMM_DEVICES',
'class' => \Ousamox\MessagesManager\Models\Device::class,
],
'message' => [
'table_name' => 'OMM_MESSAGES',
'class' => \Ousamox\MessagesManager\Models\Message::class,
],
'message_seen' => [
'table_name' => 'OMM_MESSAGE_SEENS',
'class' => \Ousamox\MessagesManager\Models\MessageSeen::class,
],
'message_file' => [
'table_name' => 'OMM_MESSAGE_FILES',
'class' => \Ousamox\MessagesManager\Models\MessageFile::class,
],
'session' => [
'table_name' => 'OMM_SESSIONS',
'class' => \Ousamox\MessagesManager\Models\Session::class,
],
'user' => [
'table_name' => 'OMM_USERS',
'class' => \Ousamox\MessagesManager\Models\User::class,
],
],
'channels_duplication' => env('OMM_CHANNELS_DUPLICATION',false),
];
This will generate also a migration file in database/migrations contains all tables that we must have in our database., (*8)
We can customise the name of our tables by editing the models.<entity>.table_name value in config/omm.php, (*9)
We can alse customise the main model class for each entity by editing the models.<entity>.class value in config/omm.php :, (*10)
Example :, (*11)
config/omm.php :, (*12)
return [
'models' => [
'channel' => [
'table_name' => 'app_channels',
'class' => App\Models\Channel::class,
],
...
app/models/Channel.php :, (*13)
namespace App\Models;
use Ousamox\MessagesManager\Models\Channel as BaseChannel;
class Channel extends BaseChannel
{
// Add or Override the main behavior of this class without touching its defined properties or attributes
...
}
The last step is generating tables by running this command :, (*14)
$ php artisan migrate
Congratulations, you have successfully installed MessagesManager in your project !, (*15)
1- Authentification is required when using these methods, (*16)
2- Pagination must be available on the next release, (*17)
To get the list of channels :, (*18)
$channels = \OMessage::getChannels();
To get the list of channels :, (*19)
// $value must be an integer (channel ID) or a Channel Object $messages = \OMessage::getMessagesByChannel($value);
Send First Message in new channel, (*20)
$messages = \OMessage::sendMessageNewChannel($messageData: array, $channelData: array $toUsers: array, $files = []);
Parameters :, (*21)
| Parameter | Description |
|---|---|
messageData |
[Required] data array should respect the following structure : |
[ 'content' => 'Hello World', // REQUIRED 'sent_from_lat' => 3.993843, // OPTIONAL (MAPS Latituude) 'sent_from_long' => 23.222843, // OPTIONAL (MAPS Longitude) ... // Other attributes added in entity : message ]
| Parameter | Description |
|---|---|
channelData |
[Required] data array should respect the following structure : |
[ 'subject' => 'New Channel', // OPTIONAL .. // Other attributes added in entity : channel ]
| Parameter | Description |
|---|---|
toUsers |
[Required] array of users ID that must receive message (one or many) |
files |
[Optional] array of files to join (one or many) |
Send Message in existing channel, (*22)
$messages = \OMessage::sendMessageExistingChannel($messageData: array, $channel: ChannelModel|int, $files = []);
Parameters :, (*23)
| Parameter | Description |
|---|---|
messageData |
[Required] data array should respect the following structure : |
[ 'content' => 'Hello World', // REQUIRED 'sent_from_lat' => 3.993843, // OPTIONAL (MAPS Latituude) 'sent_from_long' => 23.222843, // OPTIONAL (MAPS Longitude) ... // Other attributes added in entity : message ]
| Parameter | Description |
|---|---|
channel |
[Required] Channel object or channel ID |
files |
[Optional] array of files to join (one or many) |
Add users to an existing channel, (*24)
Only channel creator could attach users to it, (*25)
$messages = \OMessage::addUsersToChannel($channel: ChannelModel|int, $users: array);
Parameters :, (*26)
| Parameter | Description |
|---|---|
channel |
[Required] Channel object or channel ID |
users |
[Required] array of users ID that must attach this channel |
The package provides an easy way to implementing a messages manager into your laravel project
MIT
laravel messages manager chat ousamox oussama bouisfi