hoangkhacphuc/zalo_bot
Composer 安装命令:
composer require hoangkhacphuc/zalo_bot
包简介
A PHP library for building Zalo chatbots. This library works in plain PHP, Laravel, or any PHP framework. It provides a set of Data Transfer Objects (DTOs), exceptions, and helper methods to interact with the Zalo API and handle messages safely.
README 文档
README
A lightweight, framework-agnostic PHP SDK to build Zalo chatbots with safety, testability, and developer ergonomics.
Features
- Handle Zalo messages and events
- Type-safe DTOs:
Message,Webhook,InfoMe,MessageResponse - SOLID architecture with interfaces and DI
- Works in plain PHP or Laravel
- Rich exceptions for robust error handling
Why Use This Library?
- Framework-independent: works anywhere
- Type-safe: DTOs ensure validated data
- Testable: dependency-injected collaborators and factories
- Extensible: swap implementations via interfaces
- Production-ready: explicit errors and safe parsing
Requirements
- PHP 8.1 or higher
- Composer
- Optional: Laravel 9+ for Laravel integration
Installation
Install via Composer:
composer require hoangkhacphuc/zalo_bot
Quick Start (Plain PHP)
<?php require_once 'vendor/autoload.php'; use Hoangkhacphuc\ZaloBot\Support\ZaloBotFactory; $bot = ZaloBotFactory::create('<zalo-bot-access-token>'); $me = $bot->getMe(); echo $me->name;
Handle Webhooks
<?php require_once 'vendor/autoload.php'; use Hoangkhacphuc\ZaloBot\BotConfig; use Hoangkhacphuc\ZaloBot\Contracts\Repository; use Hoangkhacphuc\ZaloBot\DTO\Message; use Hoangkhacphuc\ZaloBot\Handler\TextMessage; use Hoangkhacphuc\ZaloBot\Service\WebhookServiceFactory; use Hoangkhacphuc\ZaloBot\Service\MessageDispatcher; $payloads = json_decode(file_get_contents('php://input'), true); $headers = getallheaders(); class MessageRepository implements Repository { public function save(Message $message): void { // Save message to database or log } } class TextMessageHandler extends TextMessage { public function handle(Message $message): void { file_put_contents('php://stderr', 'Text: '.$message->content.PHP_EOL); } } $botConfig = new BotConfig( '<zalo-access-token>', '<webhook-url>', '<webhook-secret>' ); $dispatcher = new MessageDispatcher; $dispatcher->registerHandler(new TextMessageHandler); $webhookService = WebhookServiceFactory::create( $botConfig, new MessageRepository, dispatcher: $dispatcher, ); // Handle $webhookService->handle($payloads, $headers);
Laravel Integration
- Publish config:
php artisan vendor:publish --tag=zalobot-config
- Set environment variables in
.env:
ZALO_ACCESS_TOKEN=your-token ZALO_WEBHOOK_URL=https://example.com/webhook ZALO_WEBHOOK_SECRET=your-secret
- Use
WebhookServicevia container:
use Hoangkhacphuc\ZaloBot\Service\WebhookService; Route::post('/zalo/webhook', function (Request $request, WebhookService $service) { $service->handle($request->all(), $request->headers->all()); return response()->json(['ok' => true]); });
Testing
- Pest tests included (
tests/). - Run:
composer test
Configuration & Environment
- Use
BotConfig($accessToken, $webhookUrl, $webhookSecret). - For Laravel, manage via
config/zalobot.phpand.env.
Error Handling
The SDK throws domain-specific exceptions like HttpException, UnauthorizedException, SendMessageException.
Migration
This is the first stable release (v1.0.0). No migration needed.
License
MIT License. See the LICENSE file for details.
hoangkhacphuc/zalo_bot 适用场景与选型建议
hoangkhacphuc/zalo_bot 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 09 月 09 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「php」 「api」 「library」 「sdk」 「messaging」 「bot」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 hoangkhacphuc/zalo_bot 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 hoangkhacphuc/zalo_bot 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 hoangkhacphuc/zalo_bot 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A PSR-7 compatible library for making CRUD API endpoints
Inbox pattern process implementation for your Laravel Applications
Core library that defines common interfaces used by the rest of the intahwebz..
Amqp classes
Provides command to manage a web library directory
Alfabank REST API integration
统计信息
- 总下载量: 1
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 20
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-09-09