ousamox / messages-manager
此包提供了一种简单的方法,将消息管理器集成到您的Laravel项目中
dev-master
2018-01-13 18:14 UTC
Requires
This package is not auto-updated.
Last update: 2024-09-21 17:19:22 UTC
README
此包仅支持Laravel 5.x版本
安装
将MessagesManager包添加到您的composer.json文件中,以要求它
require : {
"laravel/framework": xxxx,
...
"ousamox/messages-manager": "master"
}
更新Composer
$ composer update
下一步需要将服务提供者添加到config/app.php
'providers' => array(
...
'Ousamox\MessagesManager\Providers\MessagesManagerProvider'
)
通过在config/app.php
文件的aliases数组中添加它来别名PushNotification外观
'aliases' => array(
...
'OMessage' => 'Ousamox\MessagesManager\Facades\OMessage'
)
配置
发布文件
使用以下命令将OMM配置和迁移文件发布到您的应用程序中
$ php artisan vendor:publish --tag=omm
这将生成一个配置文件,如config/omm.php
中的此示例所示
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), ];
这将生成一个迁移文件,如database/migrations
中的此示例所示,其中包含我们数据库中必须拥有的所有表。
配置文件
我们可以通过编辑config/omm.php
中的models.<entity>.table_name
值来自定义我们的表名
我们还可以通过编辑config/omm.php
中的models.<entity>.class
值来自定义每个实体的主要模型类
示例
config/omm.php
:
return [ 'models' => [ 'channel' => [ 'table_name' => 'app_channels', 'class' => App\Models\Channel::class, ], ...
app/models/Channel.php
:
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 ... }
最后一步是通过运行此命令生成表
$ php artisan migrate
恭喜,您已成功在项目中安装了MessagesManager!
用法
1- 使用这些方法时需要身份验证
2- 分页将在下一版本中提供
获取所有频道(会话)
获取频道的列表
$channels = \OMessage::getChannels();
按频道(会话)获取消息
获取频道的列表
// $value must be an integer (channel ID) or a Channel Object $messages = \OMessage::getMessagesByChannel($value);
发送消息
在新的频道中发送第一条消息
$messages = \OMessage::sendMessageNewChannel($messageData: array, $channelData: array $toUsers: array, $files = []);
参数
[
'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
]
[
'subject' => 'New Channel', // OPTIONAL
.. // Other attributes added in entity : channel
]
在现有频道中发送消息
$messages = \OMessage::sendMessageExistingChannel($messageData: array, $channel: ChannelModel|int, $files = []);
参数
[
'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
]
将用户添加到现有频道
只有频道创建者才能将用户附加到频道
$messages = \OMessage::addUsersToChannel($channel: ChannelModel|int, $users: array);
参数