$ composer require escalated-dev/escalated-laravelなぜEscalatedか
なぜLaravelにEscalatedか
フレームワークと一緒に出荷されたように感じるよう構築。
ネイティブEloquentモデル
チケット、返信、タグ、アクティビティはすべてEloquentモデル。スコープ、リレーション、クエリビルダーをアプリの他のモデルと同様に使用。
Artisanコマンド
設定の公開、マイグレーションの実行、デモデータのシード、コマンドラインからのチケット管理。既存のデプロイパイプラインと連携。
Inertia.js向けに構築
Inertiaを通じてレンダリングされる共有Vue UI。iframeなし、別のフロントエンドビルドなし。アプリケーションのネイティブな一部のように。
はじめに
仕組み
ゼロから動作するヘルプデスクまで3ステップ。
パッケージをインストール
composer require escalated-dev/escalated-laravel
公開とマイグレーション
php artisan escalated:install && php artisan migrate
ルートをマウント
routes/web.phpにEscalatedルートを追加すれば稼働。チケット、会話、完全なエージェントダッシュボード — 数分で準備完了。
機能
Laravelネイティブ機能
ファーストパーティパッケージに期待するすべてのインテグレーションポイント。
Eloquentリレーション
チケットはユーザーに属し、多くの返信を持ち、ポリモーフィックリレーションで接続。他のLaravelモデルと同様にクエリ。
キュー統合
メール通知、Webhookディスパッチ、SLAチェックはLaravelのネイティブキューシステムで実行。Redis、SQS、データベース — 自由に選択。
ポリシーベースの認可
GateとPolicyサポートが標準搭載。標準のLaravel認可を使用してチケットの表示、返信、割り当て、クローズを制御。
イベントシステム
すべてのチケットアクションがLaravelイベントを発火。TicketCreated、ReplyAdded、StatusChangedなどにフックしてカスタムワークフローを構築。
ミドルウェアサポート
既存のミドルウェアをEscalatedルートに適用。認証、レートリミット、テナントスコーピングが期待通りに動作。
テストファクトリー
チケット、返信、ユーザー用のモデルファクトリー付き。既に使用しているのと同じパターンでフィーチャーテストを記述。
コード
我が家のように
標準のLaravelパターン。新しく学ぶことなし。
// routes/web.php use Escalated\Escalated; Escalated::routes(); // app/Models/User.php use Escalated\Traits\HasTickets; class User extends Authenticatable { use HasTickets; } // Anywhere in your application $ticket = $user->tickets()->create([ 'subject' => 'Need help with billing', 'priority' => 'high', ]); $ticket->replies()->create([ 'body' => 'We\'ve updated your invoice.', 'user_id' => $agent->id, ]);