losthost / telle
A simple template for extreme complex bot
Requires
- php: >=8.1.1
- dragonmantank/cron-expression: v3.3.3
- losthost/db: ^3
- telegram-bot/api: 2.6.x-dev
- dev-master
- dev-old
- v4.3.17b
- v4.3.16b
- v4.3.15b
- v4.3.14b
- v4.3.13b
- 4.3.12b
- 4.3.11b
- v4.3.10b
- v4.3.9b
- v4.3.8b
- v4.3.7b
- v4.3.6b
- v4.3.5b
- v4.3.4b
- v4.3.3b
- v4.3.2b
- v4.3.1b
- v4.3.0b
- v4.2.3b
- v4.2.2
- v4.2.1b
- v4.2.0b
- v4.1.6b
- v4.1.5b
- v4.1.4b
- v4.1.3b
- v4.1.2b
- v4.1.1b
- v4.1.0b
- v4.0.15a
- v4.0.14a
- v4.0.13a
- v4.0.12a
- v4.0.11a
- v4.0.10a
- v4.0.9a
- v4.0.8a
- v4.0.7a
- v4.0.6a
- v4.0.5a
- v4.0.4a
- v4.0.3a
- v4.0.2a
- v4.0.1a
- v4.0.0
- v3.1.2
- v3.1.1
- v3.1.0
- v3.0.4
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0.0
- v2.0.1
- v2.0.0
- v1.4.0
- v1.3.3
- v1.3.2
- v1.3.1
- v1.3.0
- v1.2.1
- v1.2.0
- v1.1.4
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.0
- dev-v4-dev
This package is auto-updated.
Last update: 2024-12-18 13:05:03 UTC
README
Этот фреймворк позволяет создавать ботов Telegram, которые могут работать как в режиме веб-сервера через веб-хук, так и в автономном (cli) режиме, получая обновления через getUpdates().
В автономном режиме поддерживается многопоточность, через запуск worker-процессов если это необходимо для высоконагруженных проектов.
Также фреймворк имеет свой собственный планировщик заданий, который позволяет стартовать классы-потомки AbstractBackgroundProcess внутри потока планировщика или в отдельном потоке (рекомендуется для процессов потребляющих много времени)
Быстрый старт
- Создайте проект и подключите Telle через composer:
"require": {
"losthost/telle": "^4",
},
- Создайте etc/bot_config.php:
$token = 'bot:token_полученный_от_BotFather';
$ca_cert = 'Путь/к/cacert.pem';
$timezone = 'Default/Timezone'; // ex. Europe/Moscow
$db_host = 'your.database.host';
$db_user = 'db_username';
$db_pass = 'Db-PAssWorD';
$db_name = 'database_name';
$db_prefix = 'table_prefix_';
- Создайте обработчик
use losthost\telle\abst\AbstractHandlerCommand;
use losthost\telle\Bot;
class CommandStart extends AbstractHandlerCommand {
const COMMAND = 'start';
protected function handle(\TelegramBot\Api\Types\Message &$message) : bool {
Bot::$api->sendMessage(Bot::$chat->id, 'Hello World!');
return true;
}
}
- Создайте файл запуска бота (например index.php) содержащий следующие строки:
use losthost\telle\Bot;
require 'vendor/autoload.php';
// Инициализация бота
Bot::setup();
// Ваша собственная инициализация если нужна
// (добавьте сюда какой-нибудь код)
// Добавьте обработчик(и)
Bot::addHandler(CommandStart::class);
// Запустите бота
Bot::run();
(Посмотрите папку src/samples, там есть другие примеры обработчиков. В папке src/abst находятся классы-родители обработчиков)
TODO
Создать репозиторий с примером бота и сделать ссылку на него