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

Атрибуты (Attributes Reference)

Список всех доступных атрибутов для декларативного объявления маршрутов в контроллерах. Все атрибуты находятся в пространстве имен ZenithGram\ZenithGram\Attributes.

Для использования атрибута его необходимо импортировать: use ZenithGram\ZenithGram\Attributes\OnStart;

Команды

#[OnStart]

Срабатывает при отправке команды /start. Аналог: $bot->onStart()

php
#[OnStart]
public function start(ZG $tg) { ... }

#[OnBotCommand]

Срабатывает на стандартные команды (начинающиеся со слеша /). Аналог: $bot->onBotCommand()

ПараметрТипОписание
commandstring|arrayТекст команды (например, '/help') или массив команд.
php
#[OnBotCommand('/help')]
public function help(ZG $tg) { ... }

#[OnCommand]

Срабатывает на кастомные команды (например, !ban, погода). Поддерживает плейсхолдеры {arg}. Аналог: $bot->onCommand()

ПараметрТипОписание
commandstring|arrayТекст команды или паттерн (например, '!ban {user}').
php
#[OnCommand('!ban {user}')]
public function ban(ZG $tg, string $user) { ... }

#[OnReferral]

Срабатывает при переходе по реферальной ссылке. Аналог: $bot->onReferral()

php
#[OnReferral]
public function referral(ZG $tg, string $ref) { ... }

Текст

#[OnText]

Срабатывает при точном совпадении текста сообщения. Аналог: $bot->onText()

ПараметрТипОписание
textstring|arrayТекст или массив текстов для сравнения.
php
#[OnText('О нас')]
public function about(ZG $tg) { ... }

#[OnTextPreg]

Срабатывает при совпадении текста с регулярным выражением. Аналог: $bot->onTextPreg()

ПараметрТипОписание
patternstring|arrayРегулярное выражение (PCRE).
php
#[OnTextPreg('/^ID: (\d+)$/')]
public function checkId(ZG $tg, array $matches) { ... }

#[OnMessage]

Fallback-обработчик для любых текстовых сообщений, не обработанных другими маршрутами. Аналог: $bot->onMessage()

php
#[OnMessage]
public function fallback(ZG $tg) { ... }

#[OnEditedMessage]

Срабатывает при редактировании сообщения пользователем. Аналог: $bot->onEditedMessage()

php
#[OnEditedMessage]
public function edited(ZG $tg) { ... }

Кнопки (Callback)

#[Btn]

Создает маршрут для обработки нажатия на кнопку с определенным ID. Аналог: $bot->btn()

Важно

Атрибут создает только обработчик. Саму кнопку вы должны отправить пользователю отдельно (через клавиатуру), используя тот же ID.

ПараметрТипОписание
idstringУникальный ID кнопки.
namestringНазвание кнопки.
php
#[Btn('main_menu')]
public function menu(ZG $tg) { ... }

#[OnCallback]

Срабатывает при совпадении callback_data. Поддерживает плейсхолдеры. Аналог: $bot->onCallback()

ПараметрТипОписание
datastring|arrayДанные кнопки или паттерн (например, 'item_{id}').
php
#[OnCallback('buy_{id}')]
public function buy(ZG $tg, int $id) { ... }

#[OnCallbackPreg]

Срабатывает при совпадении callback_data с регулярным выражением. Аналог: $bot->onCallbackPreg()

ПараметрТипОписание
patternstring|arrayРегулярное выражение.
php
#[OnCallbackPreg('/^page_(\d+)$/')]
public function page(ZG $tg, array $matches) { ... }

Медиа и Файлы

Группа атрибутов, реагирующих на получение определенных типов контента.

АтрибутОписание
#[OnPhoto]Получено фото
#[OnVideo]Получено видео
#[OnAudio]Получен аудиофайл
#[OnVoice]Получено голосовое сообщение
#[OnVideoNote]Получен "кружочек" (video note)
#[OnDocument]Получен документ
#[OnSticker]Получен стикер

Пример:

php
#[OnPhoto]
public function savePhoto(ZG $tg) { ... }

Система и Состояния

#[OnState]

Срабатывает, когда пользователь находится в определенном шаге диалога (FSM). Аналог: $bot->onState()

ПараметрТипОписание
namestringНазвание состояния (например, 'wait_email').
php
#[OnState('wait_email')]
public function getEmail(ZG $tg) { ... }

#[OnInline]

Срабатывает при входящем Inline-запросе. Аналог: $bot->onInline()

php
#[OnInline]
public function inlineHandler(ZG $tg) { ... }

#[OnDefault]

Глобальный Fallback. Срабатывает, если ни один другой маршрут не подошел. Аналог: $bot->onDefault()

php
#[OnDefault]
public function unknownUpdate(ZG $tg) { ... }

Управление участниками

АтрибутОписание
#[OnNewChatMember]В чат вступил новый участник (или добавлен бот).
#[OnLeftChatMember]Участник покинул чат (или бот удален).
php
#[OnNewChatMember]
public function welcome(ZG $tg, UserDto $user) { ... }

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