run
Метод является "сердцем" роутера. Он запускает процесс сопоставления (диспетчеризации) входящего обновления с определенными вами маршрутами.
Обычно run вызывается один раз в конце вашего скрипта без параметров.
Параметры
| # | Название | Тип | Описание |
|---|---|---|---|
| 1 | id | string|null | Опциональный. 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(ZG $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');