PHPackages                             uzdevid/yii2-telegram-bot - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. uzdevid/yii2-telegram-bot

ActiveExtension[Utility &amp; Helpers](/categories/utility)

uzdevid/yii2-telegram-bot
=========================

Telegram messenjerida bot yaratish uchun PHP kutubxonasi

2.0.2(2y ago)1294MITPHPPHP &gt;=8.0

Since Jun 15Pushed 2y agoCompare

[ Source](https://github.com/uzdevid/yii2-telegram-bot)[ Packagist](https://packagist.org/packages/uzdevid/yii2-telegram-bot)[ RSS](/packages/uzdevid-yii2-telegram-bot/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (3)Versions (17)Used By (0)

PHP-da Telegram bot
===================

[](#php-da-telegram-bot)

PHP-da oson hamda mukammal Telegram bot yaratish uchun kerakli kutubxona.

O'rnatish
---------

[](#ornatish)

Ushbu kengaytmani o'rnatishning eng afzal usuli - [composer](http://getcomposer.org/) orqali.

O'rnatish uchun quyidagi buyruqni ishga tushiring:

```
composer require "uzdevid/php-telegram-bot"
```

Botning asosiy obyektini yaratish
---------------------------------

[](#botning-asosiy-obyektini-yaratish)

Bot sozlamalari

```
$config = [
    'token' => '123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11', // Bot tokeni
];
```

> Bot tokenini [@BotFather](https://t.me/BotFather) dan olishingiz mumkin

> Agar bot doyimiy faqat bitta telegram akkaunt bilan ishlaydigan bo'lsa chat\_id yoki username parametrini ham kiritishingiz mumkin. Shu holda habar yuborayotganda ushbu parametrlarni kiritishingiz shart bo'lmaydi

Bot obyektini yaratish

```
$bot = new \uzdevid\telegram\bot\Bot($config);
```

Matnli habar yuborish
---------------------

[](#matnli-habar-yuborish)

```
use uzdevid\telegram\bot\Message\Message\Method\SendMessage;

$bot->sender()
    ->chatId(123456789) // yoki ->username('@uzdevid')
    ->method(new SendMessage('Salom. Bu matnli habar'))
    ->send();
```

> **chatId()** - habar yuboriladigan chat id sini qabul qabul qiladi.

> **sender()** - so'rov yuborishga mo'ljallangan.

> **method()** - yuboriladigan so'rovni qabul qabul qiladi.

> **send()** - so'rovni yuboradi.

Rasmli habar yuborish
---------------------

[](#rasmli-habar-yuborish)

Rasmli habar yuborish ham huddi matnli habar yuborish kabi amalga oshiriladi. Faqatgi farqi rasmni yuborish uchun **method()** metodiga **SendPhoto** obyektini uzatish kerak.

```
use uzdevid\telegram\bot\Message\Message\Method\SendPhoto;

$sendPhoto = new SendPhoto('https://uzdevid.com/img/logo.png');
$sendPhoto->caption('Bu rasmli habar')->hasSpoiler();

$bot->sender()
    ->chatId(123456789)
    ->method($sendPhoto)
    ->send();
```

> **SendPhoto** - rasmli habar yuborish uchun kerakli klass.

> **caption()** - rasmli habar yuboriladigan matn.

> **hasSpoiler()** - rasmni spoiler ko'rinishida yuborish.

Tugmali habar yuborish
----------------------

[](#tugmali-habar-yuborish)

```
use uzdevid\telegram\bot\Message\Message\Method\SendMessage;
use uzdevid\telegram\bot\Message\Message\Keyboard\reply\ReplyButton;
use uzdevid\telegram\bot\Message\Message\Keyboard\reply\ReplyKeyboardMarkup;
use uzdevid\telegram\bot\Message\Message\Keyboard\reply\ReplyRow;

$replyMarkup = new ReplyKeyboardMarkup();
$replyMarkup->resizeKeyboard()->addRow(
    (new ReplyRow())
        ->addButton(new ReplyButton('Tugma 1'))
        ->addButton((new ReplyButton('Joylashuv uchun tugma'))->requestLocation())
        ->addButton((new ReplyButton('Telefon raqam uchun tugma'))->requestContact())
);

$sendMessage = new SendMessage('Bu tugmali habar');
$sendMessage->addReplyMarkup($replyMarkup);

$bot->sender()
    ->chatId(123456789)
    ->method($sendMessage)
    ->send();
```

Tugmali habar yuborilganidan so'ng undan keyingi habardan tugmalarni o'chirish uchun yangi habarni shunday ko'rinishda yuborish kerak

```
use uzdevid\telegram\bot\Message\Message\Method\SendMessage;
use uzdevid\telegram\bot\Message\Message\Keyboard\reply\ReplyKeyboardRemove;

$sendMessage = new SendMessage('Bu oddiy habar');
$sendMessage->addReplyMarkup(new ReplyKeyboardRemove());
```

> **ReplyKeyboardMarkup** - tugma yaratish uchun kerakli klass.

> **resizeKeyboard()** - tugmalarni o'lchamini o'zgartirish mumkinligini yoqish.

> **addRow()** - tugmalarga yangi qator yaratadi.

> **ReplyRow** - tugmalar uchun yangi qator yaratish uchun kerakli klass.

> **addButton()** - tugma qo'shish.

> **ReplyButton** tugma yaratish uchun kerakli klass.

> **addReplyMarkup()** - tugmalarni habarga biriktirib yuborish uchun kerakli metod.

Botdan habarlarni qabul qilish va qayta ishlash
-----------------------------------------------

[](#botdan-habarlarni-qabul-qilish-va-qayta-ishlash)

index.php

```
namespace App;

$requestBody = json_decode(file_get_contents('php://input'), true);

$bot->handler($requestBody)
    ->on(ChatStart::class)
```

> **$requestBody** - telegramdan kelgan so'rov.

> **handler()** - so'rovlarni qabul qiluvchi va qayta ishlovchi metod.

> **on()** - qabul qilinadigan so'rovlarni qo'shish uchun kerakli metod.

ChatStart.php

```
namespace App\Handlers;

use uzdevid\telegram\bot\Handler\update\Message\MessageUpdate;use uzdevid\telegram\bot\Handler\update\Message\MessageUpdateInterface;use uzdevid\telegram\bot\Type\Message;

class ChatStart extends MessageUpdate implements MessageUpdateInterface {
    public static function canHandle(Bot $bot, Message $message): bool {
        return $message->text == '/start';
    }

    public function handle(Bot $bot, Message $message): void {
        $bot->sender()
            ->chatId($message->chat->id)
            ->method(new SendMessage('Salom. Botga xush kelibsiz'))
            ->send();
    }
}
```

> **canHandle()** - so'rovni qabul qilinadimi yoki yo'qmi tekshiradi.

> **handle()** - so'rovni qabul qilgandan so'ng ishlovchi metod.

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity57

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 92.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~21 days

Recently: every ~47 days

Total

15

Last Release

764d ago

Major Versions

1.2.0 → 2.0.02024-03-31

### Community

Maintainers

![](https://www.gravatar.com/avatar/ac7e4e1b795f5b2297e810a721f3a1affd63292d08c616aa88538eef2642ae60?d=identicon)[uzdevid](/maintainers/uzdevid)

---

Top Contributors

[![DikoIbragimov](https://avatars.githubusercontent.com/u/167644693?v=4)](https://github.com/DikoIbragimov "DikoIbragimov (98 commits)")[![Blood2Code](https://avatars.githubusercontent.com/u/74860038?v=4)](https://github.com/Blood2Code "Blood2Code (8 commits)")

---

Tags

phpyii2extensionbottelegram

### Embed Badge

![Health badge](/badges/uzdevid-yii2-telegram-bot/health.svg)

```
[![Health](https://phpackages.com/badges/uzdevid-yii2-telegram-bot/health.svg)](https://phpackages.com/packages/uzdevid-yii2-telegram-bot)
```

###  Alternatives

[onmotion/yii2-telegram

Support chat for site based on Telegram bot

526.3k](/packages/onmotion-yii2-telegram)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
