PHPackages                             lastdino/echochat - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. lastdino/echochat

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

lastdino/echochat
=================

A workspace and channel based real-time chat functionality package for Laravel.

v0.3.2(1mo ago)0198MITPHPPHP ^8.2

Since Jan 8Pushed 1mo agoCompare

[ Source](https://github.com/lastdino/echochat)[ Packagist](https://packagist.org/packages/lastdino/echochat)[ Docs](https://github.com/lastdino/echochat)[ RSS](/packages/lastdino-echochat/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (10)Dependencies (15)Versions (23)Used By (0)

EchoChat Package
================

[](#echochat-package)

EchoChatは、Laravelアプリケーションにワークスペースおよびチャンネルベースのリアルタイム・チャット機能を追加するためのLaravelパッケージです。

特徴
--

[](#特徴)

- **ワークスペース**: ユーザーが所属できる分離された環境を構築。
- **チャンネル**: ワークスペース内のパブリック/プライベートな会話スペース。
- **リアルタイムメッセージング**: Laravel Reverb/Pusherを通じたリアルタイム通信。
- **スレッド機能**: メッセージに対する返信とスレッド一覧。
- **AI要約**: GeminiやOllamaを使用したチャンネルメッセージの要約機能。
- **リアクション**: 絵文字によるメッセージへのリアクション機能。
- **添付ファイル**: メッセージへのファイル添付機能（Spatie MediaLibrary連携）。
- **Livewire Volt連携**: モダンな単一ファイルコンポーネントによるUI提供。

依存関係
----

[](#依存関係)

このパッケージは以下の主要なライブラリに依存しています：

- **Laravel Framework (v12.0+)**: コアフレームワーク。
- **Livewire &amp; Volt**: インタラクティブなUIコンポーネント。
- **Spatie Laravel MediaLibrary**: 添付ファイルの管理。
- **Laravel Reverb/Pusher**: リアルタイムイベント放送用（ホスト側で設定が必要）。

インストール方法
--------

[](#インストール方法)

### 1. パッケージの追加

[](#1-パッケージの追加)

Composerを使用してパッケージをインストールします：

```
composer require lastdino/echochat
```

### 2. モデルの設定

[](#2-モデルの設定)

`User` モデルに `HasWorkspaces` インターフェースと `InteractsWithWorkspaces` トレイトを実装し、さらに `HasMedia` (MediaLibrary) を設定します。

```
use EchoChat\Contracts\HasWorkspaces;
use EchoChat\Traits\InteractsWithWorkspaces;
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;

class User extends Authenticatable implements HasMedia, HasWorkspaces
{
    use InteractsWithMedia, InteractsWithWorkspaces;
    // ...
}
```

### 3. マイグレーションの実行

[](#3-マイグレーションの実行)

パッケージのテーブルをデータベースに作成します：

```
php artisan migrate
```

### 4. 設定とアセットの公開（任意、一部必須）

[](#4-設定とアセットの公開任意一部必須)

設定ファイル、ビュー、カスタムアイコンなどをカスタマイズしたい場合に公開します：

```
# 設定ファイル
php artisan vendor:publish --tag=echochat-config
# ビューファイル
php artisan vendor:publish --tag=echochat-views
# カスタムアイコン（必須：リアクション追加ボタン等に使用）
php artisan vendor:publish --tag=echochat-flux-icons
```

設定方法
----

[](#設定方法)

### ブロードキャストの設定

[](#ブロードキャストの設定)

パッケージ内の `routes/channels.php` は、`EchoChatServiceProvider` によって自動的に読み込まれます。 ただし、Laravel 11 以降では、アプリケーション側でブロードキャストを有効にするために以下の準備が必要です。

1. **ブロードキャストのインストール**（未実施の場合）：

    ```
    php artisan install:broadcasting
    ```
2. **環境変数の設定**: `.env` ファイルでブロードキャストドライバー（例: `reverb` や `pusher`）を適切に設定してください。
3. **認証ユーザーの型定義**: パッケージのチャンネル認証では `auth()->check()` を使用しています。ユーザーがログインしていることを確認してください。

### アセット（CSS）の読み込み

[](#アセットcssの読み込み)

プロジェクトに Tailwind がすでにインストールされている場合は、`resources/css/app.css` ファイルに次の構成を追加するだけです。

```
@import '../../vendor/lastdino/echochat/dist/echochat.css';
```

### ルーティング

[](#ルーティング)

パッケージはデフォルトで以下のルートを提供します（`config/echochat.php` の `path` 設定で変更可能）：

- `/echochat/workspaces`: ワークスペース一覧
- `/echochat/{workspace_slug}/{channel_id?}`: チャット画面

設定ファイル `config/echochat.php` で以下の設定が可能です：

- `table_prefix`: データベーステーブルの接頭辞（デフォルト: `echochat_`）
- `path`: EchoChat のルートパス（デフォルト: `echochat`）

開発とテスト
------

[](#開発とテスト)

### テストの実行

[](#テストの実行)

```
php artisan test packages/lastdino/echochat
```

ライセンス
-----

[](#ライセンス)

MIT License.

###  Health Score

42

—

FairBetter than 88% of packages

Maintenance94

Actively maintained with recent releases

Popularity13

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~7 days

Recently: every ~33 days

Total

22

Last Release

30d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/87484368?v=4)[lastdino](/maintainers/lastdino)[@lastdino](https://github.com/lastdino)

---

Top Contributors

[![lastdino](https://avatars.githubusercontent.com/u/87484368?v=4)](https://github.com/lastdino "lastdino (39 commits)")

---

Tags

laravelrealtimechatworkspacechannel

###  Code Quality

TestsPest

### Embed Badge

![Health badge](/badges/lastdino-echochat/health.svg)

```
[![Health](https://phpackages.com/badges/lastdino-echochat/health.svg)](https://phpackages.com/packages/lastdino-echochat)
```

###  Alternatives

[nasirkhan/laravel-starter

A CMS like modular Laravel starter project.

1.4k2.7k](/packages/nasirkhan-laravel-starter)[team-nifty-gmbh/tall-datatables

Server-side rendered datatables for Laravel and Livewire

1320.9k4](/packages/team-nifty-gmbh-tall-datatables)[tomshaw/electricgrid

A feature-rich Livewire package designed for projects that require dynamic, interactive data tables.

119.4k](/packages/tomshaw-electricgrid)[ramonrietdijk/livewire-tables

Dynamic tables for models with Laravel Livewire

21259.6k](/packages/ramonrietdijk-livewire-tables)[lakm/laravel-comments

Integrate seamless commenting functionality into your Laravel project.

40715.0k1](/packages/lakm-laravel-comments)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
