https://github.com/tattersoftware/codeigniter4-chat
Embedded chat widget for CodeIgniter 4
https://github.com/tattersoftware/codeigniter4-chat
Last synced: about 1 year ago
JSON representation
Embedded chat widget for CodeIgniter 4
- Host: GitHub
- URL: https://github.com/tattersoftware/codeigniter4-chat
- Owner: tattersoftware
- License: mit
- Created: 2020-02-04T15:50:59.000Z (over 6 years ago)
- Default Branch: develop
- Last Pushed: 2024-01-17T17:41:44.000Z (over 2 years ago)
- Last Synced: 2025-06-14T16:02:56.589Z (about 1 year ago)
- Language: PHP
- Size: 133 KB
- Stars: 19
- Watchers: 4
- Forks: 7
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
# Tatter\Chat
Embedded chat widget for CodeIgniter 4
[](https://github.com/tattersoftware/codeigniter4-chat/actions/workflows/phpunit.yml)
[](https://github.com/tattersoftware/codeigniter4-chat/actions/workflows/phpstan.yml)
[](https://github.com/tattersoftware/codeigniter4-chat/actions/workflows/deptrac.yml)
[](https://coveralls.io/github/tattersoftware/codeigniter4-chat?branch=develop)
## Quick Start
1. Install with Composer: `> composer require tatter/chat`
2. Update the database: `> php spark migrate --all`
3. Publish asset files: `> php spark publish`
4. Add Chat JS to your layout: `<?= view('Tatter\Chat\Views\javascript') ?>`
4. Add a chat to any view: `= chat('my-first-chat') ?>`
## Features
**Chat** allows developers to add a lightweight Bootstrap-style chat client to any page.
## Installation
Install easily via Composer to take advantage of CodeIgniter 4's autoloading capabilities
and always be up-to-date:
```shell
> composer require tatter/chat
```
Or, install manually by downloading the source files and adding the directory to
**app/Config/Autoload.php**.
Once the files are downloaded and included in the autoload, run any library migrations
to ensure the database is setup correctly:
```shell
> php spark migrate --all
```
### Assets
**Chat** has JavaScript code as well as asset dependencies that need to be included
with any view that has a conversation on it. Assets are managed by the
[Tatter\Assets](https://github.com/tattersoftware/codeigniter4-assets) library; you can
publish all files with CodeIgniter's Publisher: `spark publish`. Be sure to configure
the **Assets** filter and apply it to routes (see docs).
### Authentication
**Chat** uses `Tatter\Users` to determine participants username and display name. You must
be sure to include a package that provides `codeigniter4/authentication-implementation`
(like **Shield**) or make your own (see [Authentication](https://codeigniter4.github.io/CodeIgniter4/extending/authentication.html)
for framework requirements).
## Usage
The easiest way to start a chat is with the helper. Load the helper file (`helper('chat')`)
and then use the `chat($uid, $title)` command wherever you would use a partial view:
```html
Yellow Widgets
Main product info here!
= chat('product-7', 'Live Chat') ?>
...
```
The parameters to `chat()` are optional, and excluding them will load a one-time chat with
a random UID (e.g. for a one-time site visitor).
## Extending
Conversations are stored and loaded from the database with the `ConversationModel`, and
most of the logic is handled by the Entities. For example, a `Conversation` entity can
`$conversation->addUser($userId)` to join or refresh a user and get back a `Participant`.
A `Participant` can `$participant->say('hello world')` to add a `Message`.