ousamox/messages-manager

此包提供了一种简单的方法,将消息管理器集成到您的Laravel项目中

安装: 0

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

开放问题: 0

类型:composer-plugin

dev-master 2018-01-13 18:14 UTC

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

参数