PhpBotFramework  2.0.2
A framework for Telegram Bots' APIs.
Functions
State

Create a state-based bot using these methods. More...

Functions

 PhpBotFramework\Utilities\BotState::__construct (BasicBot &$bot)
 
int PhpBotFramework\Utilities\BotState::getStatus (int $default_status=-1)
 Get current user status from Redis and set it in status variable. More...
 
 PhpBotFramework\Utilities\BotState::setStatus (int $status)
 Set the status of the bot in both Redis and $status. More...
 

Detailed Description

Create a state-based bot using these methods.

The bot will answer in different ways based on its internal state.

Below an example where we save user's credentials using bot states:

<?php

// Include the framework
require './vendor/autoload.php';

// Define bot state
define("SEND_USERNAME", 1);
define("SEND_PASSWORD", 2);

// Create the class for the bot that will handle login
class LoginBot extends PhpBotFramework\Bot {

    // Add the function for processing messages
    protected function processMessage($message) {
        switch($this->getStatus()) {
            case SEND_USERNAME:
                $this->sendMessage("Please, send your password.");

                // Update the bot state
                $this->setStatus(SEND_PASSWORD);
                break;

            // Or if we are expecting a password from the user
            case SEND_PASSWORD:
                $this->sendMessage("The registration is complete");
                break;
        }
    }

}

$bot = new LoginBot("token");

$bot->redis = new Redis();
$bot->redis->connect('127.0.0.1');

// Create the answer to the <code>/start</code> command
$start_closure = function($bot, $message) {
    $bot->sendMessage("Please, send your username.");
    $bot->setStatus(SEND_USERNAME);
};

$bot->addMessageCommand("start", $start_closure);
$bot->getUpdatesLocal();

Function Documentation

◆ getStatus()

int PhpBotFramework\Utilities\BotState::getStatus ( int  $default_status = -1)

Get current user status from Redis and set it in status variable.

Throws an exception if the Redis connection is missing.

Parameters
int$default_statusOptional. The default status to return if there is no status for the current user.
Returns
int The status for the current user, $default_status if missing.

◆ setStatus()

PhpBotFramework\Utilities\BotState::setStatus ( int  $status)

Set the status of the bot in both Redis and $status.

Throws an exception if the Redis connection is missing.

Parameters
int$statusThe new status of the bot.