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

run

Метод run является "сердцем" роутера. Он запускает процесс сопоставления (диспетчеризации) входящего обновления с определенными вами маршрутами.

Обычно run() вызывается один раз в конце вашего скрипта без параметров.

Параметры

#НазваниеТипОписание
1idstringНеобязательный. ID маршрута (btn, onCommand и т.д.), который нужно запустить принудительно, игнорируя входящее обновление.

Возвращает

void — метод ничего не возвращает.

Сценарии использования

1. Стандартный режим (обработка вебхука или Long Poll)

В этом режиме run() вызывается без аргументов. Он анализирует текущее обновление, находит подходящий маршрут и выполняет связанное с ним действие.

php
<?php
// ... определение всех маршрутов бота ...
$bot->onBotCommand('start', '/start')->text('Привет!');
$bot->onText('hello', 'Привет')->text('И тебе привет!');

// Запускаем обработку текущего обновления
$bot->run();

2. Принудительный запуск действия

Вы можете запустить любой обработчик напрямую, передав его ID в метод run(). Это крайне полезно для задач, выполняемых по расписанию (cron), или для запуска определенных сценариев из других частей вашего приложения.

php
<?php
// bot.php
// ... определение всех маршрутов бота ...
$bot->onCommand('daily_report', 'make_report')
    ->func(function() use ($tg) {
        // ... сложная логика формирования отчета ...
        $reportText = "Отчет за сегодня: ...";
        $tg->sendMessage(ADMIN_CHAT_ID, $reportText);
    });

// cron.php - этот скрипт запускается по расписанию
require_once 'bot.php';

// Принудительно запускаем обработчик с ID 'daily_report'
// Контекст пользователя (chat_id, user_id) будет пустым,
// поэтому внутри обработчика нужно использовать заранее известные ID.
$bot->run('daily_report');

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