Search by

andrew-gos / telegram-bot

Advanced strictly typed Telegram Bot Library

Maintainers

Package info

github.com/CiBeRHeMuL/TelegramBot

pkg:composer/andrew-gos/telegram-bot

Transparency log

Statistics

Installs: 257

Dependents: 1

Suggesters: 0

Stars: 1

Open Issues: 0

4.9.0 2026-08-25 17:33 UTC

README

Latest Stable Version License PHP Version Require CI codecov

๐ŸŒŸ 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 10.3).
  • ๐Ÿ”’ Strict Typing: Maximum code reliability and excellent IDE support.
  • ๐Ÿงฉ Modern Architecture: A flexible update handling system using HandlerGroup, Checker, and Middleware.
  • ๐Ÿ”Œ Extensibility: Easily integrate your own logic through plugins and middleware.
  • ๐Ÿค PSR Compliant: Effortless integration with any modern framework.
  • ๐Ÿงช Under Active Test Development: 891+ tests, 1300+ assertions. Core components + Entity deserialization + API via HTTP mock. Full coverage strategy โ€” see Coverage Strategy.

๐Ÿ“ฆ Installation

To install the library, use Composer:

composer require andrew-gos/telegram-bot

๐Ÿ”„ Versioning & Backward Compatibility

The library follows Semantic Versioning, but the guarantee is split by layer:

  1. Bot API mirror layer (src/Entity, src/Request, src/Response, src/Enum). These classes are a strict 1:1 mirror of the Telegram Bot API. Fields and parameters removed by Telegram itself are removed in the library in the same (minor) release and are always listed in the Removed section of the CHANGELOG.md, together with a migration recipe.
  2. Library's own API layer (Api/ApiInterface, Telegram, Kernel, ValueObject, Serializer, Http). This layer follows strict SemVer: removals and incompatible changes are only introduced in a major release.

Release tags are published without a v prefix (e.g. 4.9.0). The only v-prefixed tag (v4.8.0) is a historical accident and will not be renamed.

๐Ÿ“š 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

  1. Fork the repository on GitHub.
  2. Create a new branch for your changes (e.g. fix/message-parsing-error).
  3. Make your changes. Ensure your code adheres to the project's coding style.
  4. Run the code style fixer. This project uses php-cs-fixer. You can apply the style rules by running:
    composer php-cs-fix
  5. Add or update tests. Your pull request should include tests that cover your changes.
  6. 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.