Перейти к содержимому

MessageBuilder

Trait, который используется в классах Message и Action для сборки и отправки сообщений

Он включает в себя все методы для сборки сообщений, например: text(), parseMode(), reply().

Подробнее про класс Message и доступных методах здесь

Примеры использования

php
<?php
require_once __DIR__ . '/vendor/autoload.php';
use ZenithGram\ZenithGram\ZG;
use ZenithGram\ZenithGram\Bot;
use ZenithGram\ZenithGram\Button;
use ZenithGram\ZenithGram\Enums\MessageParseMode;
use ZenithGram\ZenithGram\Enums\MessageDice;

$tg = ZG::create(BOT_TOKEN);
$bot = new Bot($tg);

// 1. Текст с форматированием
// Используем text() и parseMode() для отправки HTML
$bot->onBotCommand('start', '/start')
    ->text("Привет! <b>Добро пожаловать</b> в бота.")
    ->parseMode(MessageParseMode::HTML);

// 2. Медиа с подписью и клавиатурой
// text() автоматически становится подписью (caption), если добавлено медиа
$bot->onText('cat', 'покажи кота')
    ->img('https://cataas.com/cat')
    ->text('Вот твой случайный котик 🐱')
    ->inlineKbd([
        [Button::cb('Ещё одного', 'cat')]
    ]);

// 3. Ответ на сообщение (Reply) и удаление клавиатуры
// reply() заставляет бота ответить на сообщение пользователя
$bot->onText('close', 'закрыть меню')
    ->reply() // Ответ на сообщение пользователя
    ->text('Клавиатура скрыта.')
    ->removeKbd();

// 4. Отправка документа с дополнительными параметрами
// params() позволяет передать специфичные флаги API, например disable_notification
$bot->onBotCommand('rules', '/rules')
    ->doc('rules.pdf')
    ->text('Ознакомьтесь с правилами.')
    ->params(['disable_notification' => true]);

// 5. Развлекательные методы (Кубик)
// dice() отправляет анимированный эмодзи
$bot->onText('dice', 'кинь кубик')
    ->dice(MessageDice::Dice);
    
// 6. Сложная цепочка (Fluent Interface во всей красе)
$bot->onBotCommand('promo', '/promo')
    ->img('https://example.com/poster.jpg')      // Картинка
    ->text("*Скидка 50%* на все товары!")        // Текст/Подпись
    ->parseMode(MessageParseMode::MarkdownV2)    // Форматирование
    ->reply()                                    // Реплай
    ->inlineKbd([[Button::url('Купить', 'https://example.com')]]) // Кнопка
    ->params(['protect_content' => true]);       // Запрет пересылки

$bot->run();

Опубликовано под лицензией MIT.