PHPackages                             danil005/php-vk-bot - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. danil005/php-vk-bot

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

danil005/php-vk-bot
===================

524PHP

Since Feb 8Pushed 7y agoCompare

[ Source](https://github.com/Danil005/php-vk-bot)[ Packagist](https://packagist.org/packages/danil005/php-vk-bot)[ RSS](/packages/danil005-php-vk-bot/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependenciesVersions (1)Used By (0)

PHP-VK-BOT
==========

[](#php-vk-bot)

[![Build Status](https://camo.githubusercontent.com/09424d677dce22046974fbeeff80480f892a4311a8dc496ecb7fce4ef088bd5b/68747470733a2f2f7472617669732d63692e6f72672f44616e696c3030352f7068702d766b2d626f742e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/Danil005/php-vk-bot)

Библиотека для работы с VK-ботами. Поддерживается работа в беседах.

---

Содержание
----------

[](#содержание)

1. [TODO](#todo)
2. [Установка](#%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0)
3. [Обработка команд](#3-%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0-%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4)
    - [Базовые опции](#31-%D0%B1%D0%B0%D0%B7%D0%BE%D0%B2%D1%8B%D0%B5-%D0%BE%D0%BF%D1%86%D0%B8%D0%B8)
        - [Вызов команды при помощи метода](#311-%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2-%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B-%D0%BF%D1%80%D0%B8-%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D0%B8-%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%B0)
        - [Игнорирование вызова команды при помощи метода](#312-%D0%B8%D0%B3%D0%BD%D0%BE%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2%D0%B0-%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B-%D0%BF%D1%80%D0%B8-%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D0%B8-%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%B0)
    - [Расширенные опции](#32-%D1%80%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5-%D0%BE%D0%BF%D1%86%D0%B8%D0%B8)
        - [Вариативность вызова команды](#321-%D0%B2%D0%B0%D1%80%D0%B8%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D1%81%D1%82%D1%8C-%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2%D0%B0-%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B)
        - [Варианты реагирования бота на сообщения](#322-%D0%B2%D0%B0%D1%80%D0%B8%D0%B0%D0%BD%D1%82%D1%8B-%D1%80%D0%B5%D0%B0%D0%B3%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D0%B1%D0%BE%D1%82%D0%B0-%D0%BD%D0%B0-%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D1%8F)
            - [Похоже на](#3221-%D0%BF%D0%BE%D1%85%D0%BE%D0%B6%D0%B5-%D0%BD%D0%B0)
            - [Начинается с](#3222-%D0%BD%D0%B0%D1%87%D0%B8%D0%BD%D0%B0%D0%B5%D1%82%D1%81%D1%8F-%D1%81)
            - [Заканчивается на](#3223-%D0%B7%D0%B0%D0%BA%D0%B0%D0%BD%D1%87%D0%B8%D0%B2%D0%B0%D0%B5%D1%82%D1%81%D1%8F-%D0%BD%D0%B0)
            - [Содержит](#3224-%D1%81%D0%BE%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D1%82)
            - [Дополнение](#3225-%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5)
        - [Исполнение нескольких методов](#323-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%B8%D1%85-%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%B2)
4. [Методы](#4-%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B)
    - [attachments (Вложения)](#41--attachmentsarraystring-attachments-arraystring)
    - [sendMessage (Отправить сообщение)](#42-sendmessagearraystring-message-int-peerid--null-void)
    - [sendPhoto (Отправить фотографию)](#43-sendphotoarrraystring-photos-int-peerid--nullvoid)
    - [sendVideo (Отправить видео)](#44-sendvideoarrraystring-videos-int-peerid--nullvoid)
    - [sendDoc (Отправить документ)](#45-senddocarrraystring-docs-int-peerid--nullvoid)
    - [sendAudio (Отправить аудиозапись)](#46-sendaudioarrraystring-audio-int-peerid--nullvoid)
    - [sendWall (Отправить запись со стены)](#47-sendwallarrraystring-walls-int-peerid--nullvoid)
    - [sendPoll (Отправить опрос)](#48-sendpollarrraystring-polls-int-peerid--nullvoid)
    - [sendMarket (Отправить товар)](#49-sendmarketarrraystring-items-int-peerid--nullvoid)

---

TODO
----

[](#todo)

ДатаОписание релизаСостояние7.02.2019Возможность отправлять сообщения.**done**7.02.2019Обработка команд от пользователей как в беседе так и в личных сообщениях.**done**7.02.2019Обработка событий. (Покинул беседу, присоединился и т.д.)**done**Установка
---------

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

> composer require danil005/php-vk-bot:dev-master

3. Обработка команд
-------------------

[](#3-обработка-команд)

### 3.1. Базовые опции

[](#31-базовые-опции)

#### 3.1.1. Вызов команды при помощи метода

[](#311-вызов-команды-при-помощи-метода)

Для того, чтобы обработать команды, вам необходимо зайти в папку traits и открыть файл **CommantList.php**. Создание каждого метода - это и есть команда. Также необходимо создавать методы только строчными буквами.

```
trait CommandList
{
	protected function hello()
	{
		$this->sendMessage('Hello!');
	}
}
```

Теперь, если написать "hello" в чат, бот вам ответит: "Hello!".

#### 3.1.2. Игнорирование вызова команды при помощи метода

[](#312-игнорирование-вызова-команды-при-помощи-метода)

Если не хотите, чтобы метод вызывался при вводе ключевого слова, добавьте нижнее подчеркивание в начале метода (**function\_hello**):

```
trait CommandList
{
   protected function _hello()
   {
        $this->sendMessage('Hello!');

   }
}
```

Тогда при вызове \_hello или hello, метод выполняться не будет.

#### 3.1.3. Реакция не предложения или другие слова

[](#313-реакция-не-предложения-или-другие-слова)

Если хотите сделать реакцию на предложения, то создайте метод **cList()** в CommandList.

```
protected function cList()
{
    return [
        [ //Команда #1
            'text'=>'text message',
            'method' => '_hello'  //Обязательно использовать _.
        ],
        [...], //Команда #2
        ...
    ];
}
```

**Обязательно создавать методы с использование нижнего подчеркивания, иначе этот метод можно будет вызывать.**

Массив состоящий из вложенного массива создает команду.

КлючЗначениеtextСообщение на которое будет реагировать бот.methodМетод из CommandList. **Обязательно использовать: \_**### 3.2. Расширенные опции

[](#32-расширенные-опции)

#### 3.2.1. Вариативность вызова команды

[](#321-вариативность-вызова-команды)

Если указать ключ **text** как массив, то бот будет реагировать на несколько фраз.

```
'text'=>['text message 1', 'text message 2']
```

#### 3.2.2. Варианты реагирования бота на сообщения.

[](#322-варианты-реагирования-бота-на-сообщения)

Вы можете вызывать команду разными вариантами:

- Похоже на
- Начинается с
- Заканчивается на
- Содержит

##### 3.2.2.1. Похоже на

[](#3221-похоже-на)

Чтобы использовать этот вариант, добавьте **|** в начале строки.

Вы можете настроить вероятность совпадения в диапазоне \[0-100\].

Установить эту настройку можно в **config.php** под c ключом: **similar\_percent**.

По умолчанию: 75%.

```
'text'=>'|привет всем',
```

##### 3.2.2.2. Начинается с

[](#3222-начинается-с)

Чтобы использовать этот вариант, добавьте **\[|** в начале строки.

```
'text'=>'[|привет всем',
```

##### 3.2.2.3. Заканчивается на

[](#3223-заканчивается-на)

Чтобы использовать этот вариант, добавьте **|\]** в конец строки.

```
'text'=>'привет всем|]',
```

##### 3.2.2.4. Содержит

[](#3224-содержит)

Чтобы использовать этот вариант, выделите фразу в фигурных скобках **{ фраза }**.

```
'text'=>'{привет всем}',
```

##### 3.2.2.5. Дополнение

[](#3225-дополнение)

Данный способ работает и с использованием множества вариантов вызова.

```
'text'=>['[|привет', '{ку}', 'хай|]', '|здравствуйте']
```

#### 3.2.3. Исполнение нескольких методов

[](#323-исполнение-нескольких-методов)

Если указать ключ **method** как массив, то бот будет выполнять указанные методы по очереди.

```
'method'=>['_hello', '_goodbye']
```

4. Методы
---------

[](#4-методы)

### 4.1. attachments(array|string $attachments): array|string

[](#41--attachmentsarraystring-attachments-arraystring)

Добавить вложения для сообщения. Указывать **ДО** вызова метода sendMessage()

АргументТип данныхОписаниеПо умолчанию$attachmentsarray|stringСсылка на медиавложения или массивобязательноПример:

```
protected function _hello()
{
  $this->attachments('photo-100172_166443618');
  //$this->attachments(['photo-100172_166443618', 'photo-124172_166443618'])
  $this->sendMessage(['Hello!', 'HI!']);
}
```

**Если указать два и более подряд идущих методов attachments, то будет использоваться последний.**

Типы медиавложения:

ТипОписаниеphotoФотографииvideoВидеоaudioАудиоdocДокументwallЗапись на стенеpollОпросmarketТоварПодробнее на официальном сайте [VK.COM (messages.send)](https://vk.com/dev/messages.send).

---

### 4.2. sendMessage(array|string $message, int $peerId = null): void

[](#42-sendmessagearraystring-message-int-peerid--null-void)

Отправка сообщения пользователю/в беседу.

АргументТип данныхОписаниеПо умолчанию$messagearray|stringСообщение или массив сообщений, которые будут выбраны генератором случайных чисел.обязательно$perrIdintID-пользователя/чата.nullПример:

```
$this->sendMessage(['Hi', 'Hello!']);
//Result: Hi
```

---

### 4.3. sendPhoto(arrray|string $photos, int $peerId = null):void

[](#43-sendphotoarrraystring-photos-int-peerid--nullvoid)

Отправить фотографию, не используя метод attachments. Указывайте **&lt;owner\_id&gt;\_&lt;media\_id&gt;**.

Тип фотографию(и) будет по умолчанию photo. То есть photo-**100172\_166443618**, то вам нужно вставить лишь выделенную часть.

АргументТип данныхОписаниеПо умолчанию$photosarray|stringСсылка на фотографию или массивобязательноПример:

```
$this->sendPhoto('175343153_456239018');
```

---

### 4.4. sendVideo(arrray|string $videos, int $peerId = null):void

[](#44-sendvideoarrraystring-videos-int-peerid--nullvoid)

Отправить видео, не используя метод attachments. По тому же правилу, что и sendPhoto.

АргументТип данныхОписаниеПо умолчанию$videosarray|stringСсылка на видео или массивобязательноПример:

```
$this->sendVideo('175343153_456239018');
```

---

### 4.5. sendDoc(arrray|string $docs, int $peerId = null):void

[](#45-senddocarrraystring-docs-int-peerid--nullvoid)

Отправить документ(ы), не используя метод attachments. По тому же правилу, что и sendPhoto.

АргументТип данныхОписаниеПо умолчанию$docsarray|stringСсылка на документ или массивобязательноПример:

```
$this->sendDoc('175343153_456239018');
```

---

### 4.6. sendAudio(arrray|string $audio, int $peerId = null):void

[](#46-sendaudioarrraystring-audio-int-peerid--nullvoid)

Отправить аудио, не используя метод attachments. По тому же правилу, что и sendPhoto.

АргументТип данныхОписаниеПо умолчанию$audioarray|stringСсылка на аудио или массивобязательноПример:

```
$this->sendAudio('175343153_456239018');
```

---

### 4.7. sendWall(arrray|string $walls, int $peerId = null):void

[](#47-sendwallarrraystring-walls-int-peerid--nullvoid)

Отправить запись(и) со стен(ы), не используя метод attachments. По тому же правилу, что и sendPhoto.

АргументТип данныхОписаниеПо умолчанию$wallsarray|stringСсылка на запись со стены или массивобязательноПример:

```
$this->sendWall('175343153_456239018');
```

---

### 4.8. sendPoll(arrray|string $polls, int $peerId = null):void

[](#48-sendpollarrraystring-polls-int-peerid--nullvoid)

Отправить опрос(ы), не используя метод attachments. По тому же правилу, что и sendPhoto.

АргументТип данныхОписаниеПо умолчанию$pollsarray|stringСсылка опрос или массивобязательноПример:

```
$this->sendPoll('175343153_456239018');
```

---

### 4.9. sendMarket(arrray|string $items, int $peerId = null):void

[](#49-sendmarketarrraystring-items-int-peerid--nullvoid)

Отправить товар(ы), не используя метод attachments. По тому же правилу, что и sendPhoto.

АргументТип данныхОписаниеПо умолчанию$itemsarray|stringСсылка товар или массивобязательноПример:

```
$this->sendMarket('175343153_456239018');
```

###  Health Score

21

—

LowBetter than 19% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/715af3c0f65297f512c0041f89b75c56aeaae43541e2ac26694cc1923925647d?d=identicon)[Danil005](/maintainers/Danil005)

---

Top Contributors

[![Danil005](https://avatars.githubusercontent.com/u/26440814?v=4)](https://github.com/Danil005 "Danil005 (54 commits)")

---

Tags

botsphpphp7vkvkbot

### Embed Badge

![Health badge](/badges/danil005-php-vk-bot/health.svg)

```
[![Health](https://phpackages.com/badges/danil005-php-vk-bot/health.svg)](https://phpackages.com/packages/danil005-php-vk-bot)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
