denisbespyatov / directchat
Yii2 直接聊天
v1.0.0.1
2023-10-19 09:46 UTC
Requires
- yiisoft/yii2: ~2.0.0
Requires (Dev)
- yiisoft/yii2-bootstrap: ~2.0.0
This package is not auto-updated.
Last update: 2024-09-20 12:25:41 UTC
README
#Yii2 直接聊天 为你的 yii2 应用提供的简单聊天功能
##安装
安装此扩展的首选方式是通过 composer。
你可以运行
php composer.phar require --prefer-dist denisbespyatov/directchat
或者添加
"denisbespyatov/directchat": "*"
到你的 composer.json
文件的 require 部分中。
##演示
一旦扩展安装完成,只需按照以下方式修改你的应用程序配置
return [ 'bootstrap' => ['directchat'], 'modules' => [ 'directchat' => [ 'class' => 'denisbespyatov\directchat\Module', ], // ... ], // ... ];
##使用方法
像以下这样扩展主要的 conversation
类
namespace common\models; use common\models\User; //... class Conversation extends \denisbespyatov\directchat\db\Conversation { public function getContact() { return $this->hasOne(User::className(), ['id' => 'contact_id']); } /** * @inheritDoc */ protected static function baseQuery($userId) { return parent::baseQuery($userId) ->with(['contact.profile']); } /** * @inheritDoc */ public function fields() { return [ //... 'contact' => function ($model) { return $model['contact']; }, 'deleteUrl', 'readUrl', 'unreadUrl', //... ]; } }
像以下这样扩展主要的 message
类
namespace common\models; //... class Message extends \denisbespyatov\directchat\db\Message { /** * @inheritDoc */ public function fields() { return [ //... 'text', 'date' => 'created_at', //... ]; } }
创建一个控制器,如下所示
namespace frontend\controllers; //... use yii\web\Controller; use common\models\Conversation; use common\models\Message; use denisbespyatov\directchat\controllers\ControllerTrait; //... class MessageController extends Controller { use ControllerTrait; /** * @return string */ public function getMessageClass() { return Message::className(); } /** * @return string */ public function getConversationClass() { return Conversation::className(); } }
注意:如果你在这个前端应用中使用此扩展,你可以在
index.twig
中找到小部件的使用方法。