Атрибуты (Attributes Reference)
Список всех доступных атрибутов для декларативного объявления маршрутов в контроллерах. Все атрибуты находятся в пространстве имен ZenithGram\ZenithGram\Attributes.
Для использования атрибута его необходимо импортировать: use ZenithGram\ZenithGram\Attributes\OnStart;
Команды
#[OnStart]
Срабатывает при отправке команды /start. Аналог: $bot->onStart()
#[OnStart]
public function start(ZG $tg) { ... }#[OnBotCommand]
Срабатывает на стандартные команды (начинающиеся со слеша /). Аналог: $bot->onBotCommand()
| Параметр | Тип | Описание |
|---|---|---|
| command | string|array | Текст команды (например, '/help') или массив команд. |
#[OnBotCommand('/help')]
public function help(ZG $tg) { ... }#[OnCommand]
Срабатывает на кастомные команды (например, !ban, погода). Поддерживает плейсхолдеры {arg}. Аналог: $bot->onCommand()
| Параметр | Тип | Описание |
|---|---|---|
| command | string|array | Текст команды или паттерн (например, '!ban {user}'). |
#[OnCommand('!ban {user}')]
public function ban(ZG $tg, string $user) { ... }#[OnReferral]
Срабатывает при переходе по реферальной ссылке. Аналог: $bot->onReferral()
#[OnReferral]
public function referral(ZG $tg, string $ref) { ... }Текст
#[OnText]
Срабатывает при точном совпадении текста сообщения. Аналог: $bot->onText()
| Параметр | Тип | Описание |
|---|---|---|
| text | string|array | Текст или массив текстов для сравнения. |
#[OnText('О нас')]
public function about(ZG $tg) { ... }#[OnTextPreg]
Срабатывает при совпадении текста с регулярным выражением. Аналог: $bot->onTextPreg()
| Параметр | Тип | Описание |
|---|---|---|
| pattern | string|array | Регулярное выражение (PCRE). |
#[OnTextPreg('/^ID: (\d+)$/')]
public function checkId(ZG $tg, array $matches) { ... }#[OnMessage]
Fallback-обработчик для любых текстовых сообщений, не обработанных другими маршрутами. Аналог: $bot->onMessage()
#[OnMessage]
public function fallback(ZG $tg) { ... }#[OnEditedMessage]
Срабатывает при редактировании сообщения пользователем. Аналог: $bot->onEditedMessage()
#[OnEditedMessage]
public function edited(ZG $tg) { ... }Кнопки (Callback)
#[Btn]
Создает маршрут для обработки нажатия на кнопку с определенным ID. Аналог: $bot->btn()
Важно
Атрибут создает только обработчик. Саму кнопку вы должны отправить пользователю отдельно (через клавиатуру), используя тот же ID.
| Параметр | Тип | Описание |
|---|---|---|
| id | string | Уникальный ID кнопки. |
| name | string | Название кнопки. |
#[Btn('main_menu')]
public function menu(ZG $tg) { ... }#[OnCallback]
Срабатывает при совпадении callback_data. Поддерживает плейсхолдеры. Аналог: $bot->onCallback()
| Параметр | Тип | Описание |
|---|---|---|
| data | string|array | Данные кнопки или паттерн (например, 'item_{id}'). |
#[OnCallback('buy_{id}')]
public function buy(ZG $tg, int $id) { ... }#[OnCallbackPreg]
Срабатывает при совпадении callback_data с регулярным выражением. Аналог: $bot->onCallbackPreg()
| Параметр | Тип | Описание |
|---|---|---|
| pattern | string|array | Регулярное выражение. |
#[OnCallbackPreg('/^page_(\d+)$/')]
public function page(ZG $tg, array $matches) { ... }Медиа и Файлы
Группа атрибутов, реагирующих на получение определенных типов контента.
| Атрибут | Описание |
|---|---|
#[OnPhoto] | Получено фото |
#[OnVideo] | Получено видео |
#[OnAudio] | Получен аудиофайл |
#[OnVoice] | Получено голосовое сообщение |
#[OnVideoNote] | Получен "кружочек" (video note) |
#[OnDocument] | Получен документ |
#[OnSticker] | Получен стикер |
Пример:
#[OnPhoto]
public function savePhoto(ZG $tg) { ... }Система и Состояния
#[OnState]
Срабатывает, когда пользователь находится в определенном шаге диалога (FSM). Аналог: $bot->onState()
| Параметр | Тип | Описание |
|---|---|---|
| name | string | Название состояния (например, 'wait_email'). |
#[OnState('wait_email')]
public function getEmail(ZG $tg) { ... }#[OnInline]
Срабатывает при входящем Inline-запросе. Аналог: $bot->onInline()
#[OnInline]
public function inlineHandler(ZG $tg) { ... }#[OnDefault]
Глобальный Fallback. Срабатывает, если ни один другой маршрут не подошел. Аналог: $bot->onDefault()
#[OnDefault]
public function unknownUpdate(ZG $tg) { ... }Управление участниками
| Атрибут | Описание |
|---|---|
#[OnNewChatMember] | В чат вступил новый участник (или добавлен бот). |
#[OnLeftChatMember] | Участник покинул чат (или бот удален). |
#[OnNewChatMember]
public function welcome(ZG $tg, UserDto $user) { ... }