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 2w 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 18% 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)
```

###  Alternatives

[mauricius/laravel-htmx

Laravel helper library for Htmx

363112.7k1](/packages/mauricius-laravel-htmx)[bodunde/geocoder

A laravel package that helps you with geocoding addresses and reverse geocoding coordinates using the google maps api. It also helps in calculating the distance between two locations using the Hervasine formula and the coordinates of the locations

247.7k](/packages/bodunde-geocoder)

PHPackages © 2026

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