1.7 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Project Overview
lthn/php-plug-chat is a PHP library providing chat platform integrations (Discord, Slack, Telegram) for the Plug framework. It depends on lthn/php which supplies the core contracts and concerns.
Build & Install
composer install
No tests, linter, or CI are configured yet.
Architecture
Namespace: Core\Plug\Chat\ (PSR-4 mapped to src/)
Each chat provider lives in its own subdirectory and implements contracts from lthn/php (Core\Plug\Contract\*):
| Contract | Purpose | Discord | Slack | Telegram |
|---|---|---|---|---|
Authenticable |
Auth/credential validation | Auth |
Auth |
Auth |
Postable |
Send messages | Post |
Post |
Post |
Deletable |
Delete messages | Delete |
— | Delete |
Readable |
Read bot/chat info | — | — | Read |
Listable |
List chats | — | — | Chats |
Shared concerns (from lthn/php): BuildsResponse, UsesHttp, ManagesTokens. All classes use BuildsResponse + UsesHttp; Telegram classes that need stored credentials also use ManagesTokens.
Auth model: Discord and Slack use webhook URLs (no OAuth). Telegram uses Bot API tokens.
Conventions
- All files use
declare(strict_types=1) - Fluent setters for configuration (e.g.,
withWebhook(),withBotToken(),toChatId()) - All public API methods return
Core\Plug\Responsevia$this->fromHttp(),$this->ok(), or$this->error() - Response transform callbacks normalize API-specific data into flat associative arrays
- Media is passed as
Illuminate\Support\Collectionitems withurl/pathkeys