PHPackages                             govorun/skeleton - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. govorun/skeleton

ActiveProject[Framework](/categories/framework)

govorun/skeleton
================

Skeleton application for the Govorun bot framework

v1.6.0(1mo ago)04↓90%MITPHPPHP ^8.3

Since Apr 1Pushed 1mo agoCompare

[ Source](https://github.com/bromimo/govorun-skeleton)[ Packagist](https://packagist.org/packages/govorun/skeleton)[ RSS](/packages/govorun-skeleton/feed)WikiDiscussions develop Synced 4w ago

READMEChangelogDependencies (2)Versions (13)Used By (0)

Govorun Skeleton
================

[](#govorun-skeleton)

Шаблон проекта для [Govorun Framework](https://github.com/bromimo/govorun-framework) — мульти-мессенджер бот-фреймворк на PHP 8.3+.

Установка
---------

[](#установка)

```
composer create-project govorun/skeleton my-bot
cd my-bot
```

Настройка
---------

[](#настройка)

Откройте `.env` и укажите токен бота:

```
TELEGRAM_BOT_TOKEN=your-bot-token-here
```

Запуск
------

[](#запуск)

### Webhook

[](#webhook)

Установите вебхук:

```
php govorun webhook:install
```

Или направьте веб-сервер на директорию `public/`.

URL вебхука: `https://example.com/webhook/telegram` — последний сегмент определяет драйвер.

### Структура проекта

[](#структура-проекта)

В свежем скелетоне присутствует только `app/Controllers/` (+ `app/Support/` с composer-хуком). Остальные папки (`app/Flows/`, `app/Services/`, `app/Middleware/`, `app/Providers/`) создавайте по мере необходимости — CLI-генераторы (`make:flow`, `make:api-client`, …) положат файлы в соответствующие места автоматически.

```
app/Controllers/        — контроллеры бота (есть из коробки)
app/Flows/              — Flow-диалоги (создаётся через make:flow)
app/Services/           — API-клиенты (создаётся через make:api-client)
app/Middleware/         — middleware (создаётся вручную)
app/Providers/          — сервис-провайдеры (создаётся вручную)
config/                 — app, messenger, database, cache, logging
routes/messenger.php    — маршруты команд
bootstrap/app.php       — точка создания Application
public/index.php        — точка входа для вебхука
govorun                 — CLI-утилита (php govorun ...)
storage/logs/           — логи приложения
storage/state/          — состояния Flow-диалогов
storage/app/            — пользовательские файлы (включая bot-profile.{jpg,mp4})

```

Маршрутизация
-------------

[](#маршрутизация)

Маршруты описываются в `routes/messenger.php`:

```
use App\Controllers\StartController;
use Govorun\Routing\Route;

Route::command('start', StartController::class);
```

### Доступные методы

[](#доступные-методы)

МетодОписаниеПример`Route::command($name, $action)`Команда `/name``Route::command('start', StartController::class)``Route::phrase($text, $action)`Текстовая фраза`Route::phrase('привет', HelloController::class)``Route::pattern($regex, $action)`Регулярное выражение`Route::pattern('/^\\d+$/', NumberController::class)``Route::action($name, $action)`Callback-действие (inline-кнопки)`Route::action('confirm', ConfirmController::class)``Route::event($name, $action)`Событие мессенджера`Route::event('member_joined', WelcomeController::class)``Route::media($type, $action)`Медиафайл`Route::media('photo', PhotoController::class)``Route::location($action)`Геолокация`Route::location(LocationController::class)``Route::contact($action)`Контакт`Route::contact(ContactController::class)``Route::referral($code, $action)`Реферальный код`Route::referral('promo', PromoController::class)``Route::fallback($action)`Всё, что не совпало`Route::fallback(FallbackController::class)`### Приоритет маршрутов

[](#приоритет-маршрутов)

`event` &gt; `command` &gt; `action` &gt; `referral` &gt; `media` &gt; `location` &gt; `contact` &gt; `pattern` &gt; `phrase` &gt; `fallback`

### Алиасы фраз

[](#алиасы-фраз)

```
Route::phrase('привет', HelloController::class)
    ->alias(['здравствуйте', 'добрый день']);
```

### Middleware

[](#middleware)

```
Route::middleware(AuthMiddleware::class, function () {
    Route::command('admin', AdminController::class);
    Route::command('stats', StatsController::class);
});
```

### Вложенные маршруты

[](#вложенные-маршруты)

```
Route::phrase('меню', function () {
    Route::phrase('цены', PriceController::class);
    Route::phrase('контакты', ContactInfoController::class);
});
```

Контроллеры
-----------

[](#контроллеры)

Контроллер наследует `Govorun\Routing\Controller`. Входная точка — метод `handle()` (без аргументов):

```
