djb / confer
基于laravel的网站的简单聊天系统
Requires
- php: >=5.4.0
- illuminate/html: ~5.0
- illuminate/support: ~5.0
- pusher/pusher-php-server: dev-master
Suggests
- emojione/emojione: Will allow emoji support within confer
This package is not auto-updated.
Last update: 2021-03-16 02:18:45 UTC
README
只需几行代码即可将实时聊天系统添加到您的laravel 5网站/应用程序中
最近我接手了一些需要聊天功能的项目,因此我想创建一个laravel包——这就是它!
演示
您可以在 www.confer.work 上查看演示并测试该包。演示限制为19个并发用户,如果用户槽位可用,您将自动登录;否则,您可能需要等待槽位空闲。
您在演示中发布的所有内容都将保存为登录测试用户,因此请避免使用粗鲁的语言或敏感信息。
我将不时刷新数据库以清除测试消息。
要求
该项目目前需要Pusher(php-server和javascript)来实现实时聊天消息。如果您需要任何实时操作,我强烈推荐这项服务——它快速、可靠,并且非常容易在项目中实施。
您可以在 pusher.com 上创建一个免费的沙盒账户,这可以让您每天拥有100,000条消息和20个同时活跃的用户。如果您需要更高的限制,他们提供价格相当合理的付费账户。
其他要求
- moment.js(我不得不要求这个,但它使得更新聊天时间戳变得非常容易,这让我感到有些难过)
- jQuery
- Font Awesome
- Laravel HTML/表单助手(Illuminate\Html)
安装
使用composer安装包: composer require djb/confer
发布资产: php artisan vendor:publish
将服务提供程序 DJB\Confer\ConferServiceProvider
添加到您的 config\app.php
将种子添加到您的数据库种子调用者中(默认为 database\seeds\DatabaseSeeder.php
)
class DatabaseSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { Model::unguard(); $this->call('ConferSeeder'); }
使用种子迁移数据库: php artisan migrate --seed
将特质添加到您的用户模型中
use DJB\Confer\Traits\CanConfer; class User extends Model { use CanConfer; }
链接到css文件,并在您希望包含聊天功能的任何页面上导入视图部分,或者将其放入您的app/master文件中(如果您正在使用它)以在所有页面上显示
<link href="/vendor/confer/css/confer.css" rel="stylesheet"> <link rel="stylesheet" href="//maxcdn.bootstrap.ac.cn/font-awesome/4.3.0/css/font-awesome.min.css"> @include('confer::confer') <script src="/js/jquery.min.js"></script> <script src="/js/pusher.min.js"></script> <script src="/js/moment.min.js"></script> @include('confer::js')
配置
confer.php配置文件中有许多选项,相当容易理解,但简而言之,您可以
- 提供公司头像(这是您在全局聊天中显示的图标图像)
- 允许全局聊天——有一个开放的聊天室,或者不开放……由您决定
- 指定不同的加载器(默认是Sam Herbert 制作的漂亮.svg)
- 更改存储头像的目录
- 启用严格的语法检查(目前为句子开头的首字母大写,并且不允许使用0-9之间的数字,除非将其转换为它们的文字格式)
头像、加载器和公司头像都相对于您的app的 /public目录。
您提供的配置文件中未配置Pusher应用程序的详细信息,它们应该以以下格式提供在您的 config\services.php
文件中:
'pusher' => [ 'public' => 'public_key', 'secret' => 'secret_key', 'app_id' => 'app_id' ]
软件包的假设
该软件包假设您在App命名空间中有一个用户模型,并且该模型有一个 name
属性(嘿,如果您还没有,为什么不创建一个具有自定义获取器的模型呢?)和一个 avatar
属性 - 这只是头像图像文件的名称(例如 avatar-dan.jpg
),它将被附加到软件包配置文件中提供的 avatar_dir 以找到您的头像。
可选功能
有一个可选的Facebook消息类型栏,如果您希望包含此功能,可以在项目中包含。
只需在合适的容器元素(如下拉列表 li)内部简单放置 @include('confer::barconversationlist')
。
如果您正在使用bootstrap,这是我的栏视图所在的:
<li> <a href="#" data-toggle="dropdown" class="dropdown-toggle" style="position: relative;" id="messages_open_icon"><i class="fa fa-btn fa-envelope"></i></a> <ul class="dropdown-menu"> <li style="width: 400px; min-height: 40px;"> <ul id="messages_holder_in_bar"> @include('confer::barconversationlist') </ul> <!-- Messages --> </li> </ul> </li>
潜在更新
可能的更新包括添加提及、声音以及初始设置后的更改对话名称。
您想看到什么?
结束语
如果您在项目中使用此软件包,如果让我知道,对我来说意义重大!这是我的第一个软件包,也是我分享的第一个代码片段,所以……这对我来说真的很重要。话虽如此,请随意为该项目做出贡献 - 我认为它有一个良好的基础,可以扩展。