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

onState

Метод создает маршрут, который срабатывает, когда пользователь находится в указанном состоянии (шаге диалога). Этот обработчик имеет приоритет над обычными текстовыми командами (onText, onCommand), что позволяет "захватить" ввод пользователя.

Поддержка типов

Маршрут onState перехватывает как текстовые сообщения, так и нажатия на кнопки (callback_query), если пользователь находится в заданном состоянии.

Но он не перехватывает onBotCommand(), onStart() и onReferral()

Параметры

#НазваниеТипОписание
1stateNamestringНазвание состояния, которое нужно обработать.

Возвращает

Action — экземпляр класса Action.

Аргументы

onState передает в func() объект основного класса ZG и данные от пользователя (текст сообщения или callback_data):

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

php
<?php
require_once __DIR__ . '/vendor/autoload.php';
use ZenithGram\ZenithGram\ZG;
use ZenithGram\ZenithGram\Bot;
use ZenithGram\ZenithGram\Storage\FileStorage;

$tg = ZG::create(BOT_TOKEN);
$bot = new Bot($tg);
$bot->setStorage(new FileStorage());

// 1. Вход в диалог
$bot->onBotCommand('reg', '/reg')->func(function(ZG $tg) {
    $tg->msg('Введите ваше имя:')->send();
    $tg->step('wait_name');
});

// 2. Обработка состояния
$bot->onState('wait_name')
    ->func(function(ZG $tg, string $name) {
        $tg->msg("Приятно познакомиться, $name! Диалог завершен.")->send();
        $tg->endStep(); // Выход
    });

$bot->run();

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