Обработка событий

Для того, чтобы обработать какое-то конкретное событие от Callback API, для него необходимо добавить обработчик.

use Fastik1\Vkfast\Api\VkApi;
use Fastik1\Vkfast\Bot\VkBot;
use Fastik1\Vkfast\Bot\Events\MessageNew;

$api = new VkApi('access_token', 5.131);
$bot = new VkBot($api);

$bot->on(MessageNew::class, function (MessageNew $event) {
    // обработка события message_new
});

$bot->run(); // запуск обработки события

Также, возможно передать вместо callback-функции массив с классом и его методом - именно метод указанного класса и будет вызван как callback-функция.

class Handler
{
    public function messageNew(MessageNew $event)
    {
        // обработка события message_new
    }
}

$bot->on(MessageNew::class, [Handler::class, 'messageNew']);
circle-exclamation
circle-info

Полезно для разделения кода. Рекомендуется использовать именно такой подход.

Событие confirmation

Как вы знаете, чтобы настроить Callback API приложение на событие confirmation должно вернуть специальный короткий токен, который можно найти в меню настройки Callback API. Но как вернуть этот токен при обработке события? Очень просто. Достаточно внутри callback-функции сделать return с необходимым string или int значением.

Подобно применимо к любым обработчикам, но зачастую, подобное необходимо именно для события confirmation.

circle-info

В случае, если callback-функция возвращает string или int - дальнейшая обработка полностью прекращается и происходит отдача результата в браузер.

Метод run()

Именно этот метод запускает обработку ранее зарегистрированных обработчиков. Без него ничего работать не будет, т.к. мы только зарегистрировали определенные обработчики, но не запустили их обработку.

circle-info

У метода есть единственный аргумент, который принимает сырое событие, которое вы можете самостоятельно передать на обрабортку. По умолчанию библиотека сама получает событие через file_get_contents('php://input')

triangle-exclamation

Last updated