btba / chat-bundle
Symfony应用的聊天生成器
dev-master
2022-01-14 10:25 UTC
Requires
- php: ^7.1.3
- liip/imagine-bundle: ^2.1
- symfony/dependency-injection: ^4.2|^5.0
- symfony/form: ^4.2|^5.0
- symfony/framework-bundle: ^4.0
- symfony/http-kernel: ^4.3.7|^5.0
- symfony/translation: ^4.2|^5.0
- symfony/twig-bridge: ^4.2|^5.0
- symfony/twig-bundle: ^4.2|^5.0
- symfony/webpack-encore-bundle: ^1.7
- symfony/yaml: ^4.0
- twig/twig: ^2.11.3|^3.0
- vich/uploader-bundle: ^1.8
Requires (Dev)
- symfony/browser-kit: ^4.4
- symfony/phpunit-bridge: ^5.0
- dev-master
- dev-dependabot/npm_and_yarn/json5-1.0.2
- dev-dependabot/npm_and_yarn/express-4.18.2
- dev-dependabot/npm_and_yarn/decode-uri-component-0.2.2
- dev-dependabot/npm_and_yarn/terser-4.8.1
- dev-dependabot/npm_and_yarn/eventsource-1.1.1
- dev-dependabot/npm_and_yarn/async-2.6.4
- dev-dependabot/npm_and_yarn/url-parse-1.5.10
- dev-dependabot/npm_and_yarn/follow-redirects-1.14.8
- dev-dependabot/npm_and_yarn/ajv-6.12.6
- dev-dependabot/npm_and_yarn/tar-4.4.19
- dev-dependabot/npm_and_yarn/path-parse-1.0.7
- dev-dependabot/npm_and_yarn/dns-packet-1.3.4
- dev-dependabot/npm_and_yarn/browserslist-4.16.6
- dev-dependabot/npm_and_yarn/elliptic-6.5.4
- dev-dependabot/npm_and_yarn/ini-1.3.8
- dev-dependabot/npm_and_yarn/websocket-extensions-0.1.4
- dev-dependabot/npm_and_yarn/jquery-3.5.0
- dev-dependabot/npm_and_yarn/acorn-6.4.1
This package is auto-updated.
Last update: 2024-09-05 06:27:34 UTC
README
欢迎使用聊天包项目!
此项目旨在为任何symfony应用提供简单的聊天服务。
安装
由于此项目非常新,我们决定目前不添加Symfony Flex配方,因此配置必须手动完成。
注册
首先在您的仓库中运行以下命令安装依赖项
composer require btba/chat-bundle
并注册包
// config/bundles.php return [ //your bundles Btba\ChatBundle\BtbaChatBundle::class => ['all' => true] ];
配置
然后在您的应用目录中添加一个配置文件。以下参数是必须的
# config/packages/btba_chat.yaml btba_chat: update_interval: 1000 message_class: App\Entity\ChatMessage author_class: App\Entity\User
update_interval
指的是聊天两次刷新之间的时间
message_class
指的是托管消息的ORM类(支持Doctrine)
author_class
指的是托管作者的ORM类(支持Doctrine)
然后注册包路由并更改prefix
以满足您的需求
# config/routes/btba_chat.yaml btba_chat: resource: '@BtbaChatBundle/Resources/config/routes.yaml' prefix: /chat-bundle/
数据库
为了将作者和消息保存到您的数据库中,您需要创建至少两个扩展包模型的类,如下所示
// App\Entity\User /** * @ORM\Entity(repositoryClass="App\Repository\UserRepository") */ class User extends BaseAuthor implements UserInterface { /** * @ORM\Id() * @ORM\GeneratedValue() * @ORM\Column(type="integer") */ protected $id; /** * @ORM\Column(type="string", length=180, unique=true) */ protected $username; /** * @ORM\OneToMany(targetEntity="App\Entity\ChatMessage", mappedBy="author", cascade={"persist"}, orphanRemoval=true) */ private $messages;
// App\Entity\ChatMesssage namespace App\Entity; use Doctrine\ORM\Mapping as ORM; use Btba\ChatBundle\Model\BaseChatMessage; /** * @ORM\Entity(repositoryClass="App\Repository\ChatMessageRepository") */ class ChatMessage extends BaseChatMessage { /** * @ORM\Id() * @ORM\GeneratedValue() * @ORM\Column(type="integer") */ protected $id; /** * @ORM\Column(type="string", length=255) */ protected $content; /** * @ORM\Column(type="datetime") */ protected $date; /** * @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="messages", cascade={"persist"}) * @ORM\JoinColumn(nullable=false) */ protected $author; }
并在message_class
存储库中添加以下特质
// src/Repository/ChatMessageRepository.php namespace App\Repository; use Btba\ChatBundle\Query\MessageQuery; use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; class ChatMessageRepository extends ServiceEntityRepository { use MessageQuery; //your code... }
配置完成,您可以开始了!
使用方法
要使用此包,您需要在视图中添加几个组件。
如果您使用的是Encore,请将以下资产添加到您的app.css
文件中
@import '../../vendor/btba/chat-bundle/assets/css/chat.css';
和app.js
文件中
import * as chat from '../../vendor/btba/chat-bundle/assets/js/chat'; //functions for the chat window management $(function(){ $("#chevron").click(function(e) { chat.changeChevron(e.target); }); $("#chat-submit").click(function(e) { chat.submitChat(e); }); });
在视图中,您现在只需渲染以下控制器
{{ render(controller('Btba\\ChatBundle\\Controller\\ChatController::show')) }}