andrew-gos / telegram-bot
Advanced strictly typed Telegram Bot Library
Requires
- php: >=8.2
- ext-ctype: *
- ext-curl: *
- andrew-gos/class-builder: ^1.0
- andrew-gos/serializer: ^1.3
- psr/container: ^2.0
- psr/event-dispatcher: ^1.0
- psr/http-client: ^1.0
- psr/http-factory: ^1.0
- psr/http-message: ^2.0
- psr/http-server-handler: ^1.0
- psr/http-server-middleware: ^1.0
- psr/log: ^3.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.87
- phpunit/phpunit: ^11.2
README
๐ Overview
This is a powerful, strictly-typed PHP library for building Telegram bots. It fully leverages the capabilities of PHP 8.2+ and modern programming standards to make your development process fast, reliable, and enjoyable.
The library provides a complete toolset for interacting with the Telegram Bot API, allowing you to focus on your bot's logic rather than on
low-level implementation details. At its core is a flexible update processing kernel built on HandlerGroup
, Checker
, and Middleware
, ensuring
exceptional modularity and extensibility.
โจ Key Features
- ๐ฏ Full API Coverage: Supports all methods and types of the Telegram Bot API (currently version 9.2).
- ๐ Strict Typing: Maximum code reliability and excellent IDE support.
- ๐งฉ Modern Architecture: A flexible update handling system using
HandlerGroup
,Checker
, andMiddleware
. - ๐ Extensibility: Easily integrate your own logic through plugins and middleware.
- ๐ค PSR Compliant: Effortless integration with any modern framework.
- ๐งช Thoroughly Tested: High test coverage ensures stability and reliability.
๐ฆ Installation
To install the library, use Composer:
composer require andrew-gos/telegram-bot
๐ Documentation
To get started and explore the library's features in-depth, please refer to the following sections:
Section | Description |
---|---|
๐ Basic Usage (BASIC.md) | Start here. A step-by-step guide to creating your first bot and handling commands. |
โ๏ธ Advanced Usage (ADVANCED.md) | Learn about Middleware, Plugins, custom Checkers , and other powerful tools. |
๐งฉ Framework Integration | |
โข Symfony (SYMFONY.md) | A guide to setting up the library as a service in Symfony applications. |
โข Yii2 (YII2.md) | A guide for integrating with the Yii2 framework's DI container. |
๐ค Contributing
Contributions are welcome and greatly appreciated! This project follows the standard GitHub fork & pull request workflow.
Reporting Bugs and Requesting Features
- Please use the GitHub Issues tracker to report bugs or request new features.
- When reporting a bug, please provide a clear description, steps to reproduce it, and your environment details (PHP version, library version).
- For feature requests, describe the problem you're trying to solve and your proposed solution.
Submitting Code Changes
- Fork the repository on GitHub.
- Create a new branch for your changes (e.g.
fix/message-parsing-error
). - Make your changes. Ensure your code adheres to the project's coding style.
- Run the code style fixer. This project uses
php-cs-fixer
. You can apply the style rules by running:composer php-cs-fix
- Add or update tests. Your pull request should include tests that cover your changes.
- Submit a Pull Request to the
master
branch with a clear description of your changes.
๐ License
This project is licensed under the MIT License. See the LICENSE file for details.