PHPackages                             thesoultaker48/yandex-dialogs-php - 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. [API Development](/categories/api)
4. /
5. thesoultaker48/yandex-dialogs-php

Abandoned → [avdeevsv91/yandex-dialogs-php](/?search=avdeevsv91%2Fyandex-dialogs-php)ArchivedLibrary[API Development](/categories/api)

thesoultaker48/yandex-dialogs-php
=================================

PHP library for the development skills of Yandex.Alice

v0.2.2(6y ago)515Apache-2.0PHPPHP &gt;=7.0

Since Feb 16Pushed 3y ago2 watchersCompare

[ Source](https://github.com/avdeevsv91/yandex-dialogs-php)[ Packagist](https://packagist.org/packages/thesoultaker48/yandex-dialogs-php)[ Docs](https://github.com/avdeevsv91/yandex-dialogs-php)[ RSS](/packages/thesoultaker48-yandex-dialogs-php/feed)WikiDiscussions master Synced today

READMEChangelog (4)Dependencies (4)Versions (5)Used By (0)

YANDEX-DIALOGS-PHP
==================

[](#yandex-dialogs-php)

PHP библиотека для разработки навыков Яндекс.Алисы

---

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

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

1. [История версий / TODO](#todo)
2. [Примеры использования](#%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B)
3. [Описание свойств](#%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0)
    - [request](#request) - Содержит информацию о запросе пользователя;
    - [response](#response) - Содержит данные ответа на запрос пользователя;
    - [users\_dir](#users_dir) - Имя каталога с данными пользователей;
    - [sentences](#sentences) - Анализировать целые предложения, а не отдельные слова;
4. [Описание методов](#%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B)
    - [Конструктор](#%D0%BA%D0%BE%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D0%BE%D1%80) - Создание объекта класса YandexDialog;
    - [debug](#debug) - Начать сбор отладочной информации;
    - [get\_request](#get_request) - Получить информацию о запросе пользователя;
    - [get\_template\_text](#get_template_text) - Получает часть текста на основе заданных шаблонов;
    - [get\_sentence\_words](#get_sentence_words) - Разбивает предложение на массив слов;
    - [get\_plural\_form](#get_plural_form) - Выбор слова с необходимым склонением для числительного;
    - [words\_percentage](#words_percentage) - Получить процентное содержание слов в массиве;
    - [compare\_words](#compare_words) - Сравнение двух слов на схожесть;
    - [is\_new\_session](#is_new_session) - Проверка признака старта новой сессии;
    - [is\_cmd\_start](#is_cmd_start) - Проверка наличия запроса, переданного вместе с командой активации навыка;
    - [bind\_new\_action](#bind_new_action) - Связывает указанную функцию с событием начала нового диалога (новой сессии);
    - [bind\_words\_action](#bind_words_action) - Связывает указанную функцию с событием нахождения одного из заданных слов в запросе пользователя;
    - [bind\_percentage\_action](#bind_percentage_action) - Связывает указанную функцию с событием превышения заданного процентного нахождения слов в запросе пользователя;
    - [bind\_sentence\_action](#bind_sentence_action) - Связывает указанную функцию с событием превышения (или равенства) заданной процентной схожести предложения;
    - [bind\_template\_action](#bind_template_action) - Связывает указанную функцию с событием совпадения фразы пользователя и заданного шаблона;
    - [bind\_default\_action](#bind_default_action) - Связывает указанную функцию с собитием отсутствия других действий;
    - [add\_button](#add_button) - Добавляет кнопку в варианты ответа пользователя;
    - [add\_message](#add_message) - Добавляет сообщение в список ответов;
    - [get\_user\_data](#get_user_data) - Получить значение переменной из данных пользователя;
    - [set\_user\_data](#set_user_data) - Установить значение переменной в данных пользователя;
    - [get\_session\_data](#get_session_data) - Получить значение переменной из сессии пользователя;
    - [set\_session\_data](#set_session_data) - Установить значение переменной из сессии пользователя;
    - [end\_session](#end_session) - Завершает диалог с пользователем;
    - [use\_phpmorphy](#use_phpmorphy) - Включает использование библиотеки phpMorphy;
    - [use\_yametrika](#use_yametrika) - Включает использование сервиса Яндекс.Метрика;
    - [yametrika\_rgoal](#yametrika_rgoal) - Передача информации о достижении цели в Яндекс.Метрике;
    - [use\_chatbase](#use_chatbase) - Включает использование сервиса Google Chatbase;
    - [chatbase\_handled](#chatbase_handled) - Устанавливает значение флага handled для Google Chatbase;
    - [finish](#finish) - Производит некоторые подготовительные процедуры и отправляет ответ Яндекс.Диалогам;
5. [Встроенные теги](#%D0%B2%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5-%D1%82%D0%B5%D0%B3%D0%B8)
6. [Используемые библиотеки](#%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D0%B5%D0%BC%D1%8B%D0%B5-%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B8)

---

TODO
----

[](#todo)

Описание измененийДата публикацииПервая публичная версия**08.01.2019**Поддержка сервиса [Google Chatbase](#use_chatbase)**09.01.2019**[Сохранение](#get_session_data)/[получение](#set_session_data) данных сессии**05.02.2019**[Сохранение](#set_user_data)/[получение](#get_user_data) данных пользователя**05.02.2019**Получение части текста по шаблону ([get\_template\_text](#get_template_text))**07.02.2019**Поддержка сервиса [Яндекс.Метрика](#use_yametrika)**08.02.2019**Морфологический анализ слов с помощью [phpMorphy](#use_phpmorphy)**20.02.2019**Расширение списка [встроенных тегов](#%D0%B2%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5-%D1%82%D0%B5%D0%B3%D0%B8)**в работе**Отправка [сообщений с изображениями](https://tech.yandex.ru/dialogs/alice/doc/resource-upload-docpage/)---Поддержка сервиса [AppMetrica](https://appmetrica.yandex.ru/)---Поддержка сервиса [Google Analytics](https://analytics.google.com/)---Вложенные нелинейные сценарии---Примеры
-------

[](#примеры)

Примеры использования библиотеки находятся в папке [examples](https://github.com/avdeevsv91/yandex-dialogs-php/tree/master/examples).

Свойства
--------

[](#свойства)

Не рекомендуется прямое изменение свойств объектов класса YandexDialog. Делайте это через соответствующие методы.

### request

[](#request)

Содержит информацию о запросе пользователя. Более подробно можно почитать в [официальной документации](https://tech.yandex.ru/dialogs/alice/doc/protocol-docpage/#request) к протоколу.

### response

[](#response)

Содержит данные ответа на запрос пользователя. Более подробно можно почитать в [официальной документации](https://tech.yandex.ru/dialogs/alice/doc/protocol-docpage/#response) к протоколу.

### users\_dir

[](#users_dir)

Имя каталога, содержащего файлы с данными пользователей (см. [get\_user\_data](#get_user_data) и [set\_user\_data](#set_user_data)). Строка. По умолчанию: 'users'.

Методы
------

[](#методы)

### Конструктор

[](#конструктор)

`public function __construct(string $version='1.0')`

Создание объекта класса YandexDialog.

`$version` - Номер используемой версии протокола. Строка. Не обязательно. По умолчанию: '1.0'.

```
$alice = new YandexDialog('1.0');

```

### debug

[](#debug)

`public function debug()`

Начинает сбор отладочной информации (время выполнения скрипта, потребляемая память и др.), просмотреть которую можно в кабинете разработчика [Яндекс.Диалоги](https://dialogs.yandex.ru), раздел "Тестирование" (блок "Последний запрос").

### get\_request

[](#get_request)

`public function get_request(array $data=null): bool`

Получить информацию о запросе пользователя.

`$data` - Данные запроса пользователя. Многомерный массив ([см.тут](https://tech.yandex.ru/dialogs/alice/doc/protocol-docpage/#request)). Не обязательно. По умолчанию: декодированный json из php://input.

```
$alice->get_request();

```

### get\_template\_text

[](#get_template_text)

`public function get_template_text(array $patterns, string $text=null): array`

Получает часть текста на основе заданных шаблонов. Метод возвращает ассоциативный массив, в котором в качестве ключей выступают имена паттернов, а значения заполнены найденными результатами. Если поиск не удался (оригинальный текст не подходит под указанные шаблоны, либо шаблоны составлены с ошибкой), то метод возвращает false.

`$patterns` - Массив шаблонов поиска. Подробнее в примерах ниже. Массив. Обязательный параметр.

`$text` - Текст, в котором осуществляется поиск. Строка. Не обязательно. По-умолчанию: текст команды пользователя.

```
$text = 'Меня зовут Иван Иванов. Мне сейчас 25 лет.';

$name = $alice->get_template_text(['Меня зовут {name1:word}', 'Мое имя {name1:word}'], $text); // ['name1' => 'Иван']
// Если шаблон один, то можно передавать его строкой
$name = $alice->get_template_text('Меня зовут {name1:word}', $text); // ['name1' => 'Иван']
$name = $alice->get_template_text('Меня зовут {name2}.', $text); // ['name2' => 'Иван Иванов']
$age = $alice->get_template_text('Мне {*}{age:int} лет', $text); // ['age' => 25]
$matches = $alice->get_template_text('Меня зовут {name:word}{*}Мне {*}{age:int} лет', $text); // ['name' => 'Иван', 'age' => 25]
$results = $alice->get_template_text('{Меня зовут|Мое имя} {*}', $text); // []
$results = $alice->get_template_text('Привет! {*}', $text); // false

```

### get\_sentence\_words

[](#get_sentence_words)

`public function get_sentence_words(string $text): array`

Разбивает предложение на массив слов в нижнем регистре.

`$text` - Исходный текст. Строка. Обязательный параметр;

```
$words = $alice->get_sentence_words('Привет! Меня зовут Иван.'); // ['привет', 'меня', 'зовут', 'иван']

```

### get\_plural\_form

[](#get_plural_form)

`public function get_plural_form(int $number, array $words): string`

Выбирает слово с необходимым склонением для указанного числительного из массива вариантов.

`$number` - Целое число, для которого необходимо подобрать слово снужным склонением. Обязательный параметр;

`$words` - Массив слов для выбора. Три элемента, соответствующие числам 1, 2 и 5. Обязательный параметр;

```
$number = 3;

echo $number . ' ' . $alice->get_plural_form($number, ['арбуз', 'арбуза', 'арбузов']); // 3 арбуза

```

### words\_percentage

[](#words_percentage)

`public function words_percentage(array $words, array $tokens): int`

Получить процентное содержание указанных слов в переданном массиве. Регистр не учитывается.

`$words` - Слова для поиска. Элементы так же могут быть массивами - в таком случае любое из совпадений внутри вложенного массива считается как совпадение всего массива. Массив. Обязательный параметр;

`$tokens` - Строки для сравнения. Массив. Обязательный параметр;

```
$percentage = $alice->words_percentage([['раз', 'один'], 'два', 'три'], ['три', 'четыре', 'пять']); // ~33%

```

### compare\_words

[](#compare_words)

`public function compare_words(string $first, string $second): bool`

Сравнивает два слова. Регистр не учитывается.

`$first` - Первое слово для сравнения. Строка. Обязательный параметр;

`$second` - Второе слово для сравнения. Строка. Обязательный параметр;

```
if($alice->compare_words('ПрИвЕт', 'привет')) { // true
	...
}

```

### is\_new\_session

[](#is_new_session)

`public function is_new_session(): bool`

Метод возвращает true, если текущий запрос является началом новой сессии.

```
if($alice->is_new_session()) {
	...
}

```

### is\_cmd\_start

[](#is_cmd_start)

`public function is_cmd_start(): bool`

Метод возвращает true, если вместе с командой активации навыка был передан запрос. Команды активации, с которыми рекомендуется передавать такие запросы: «скажи», «попроси», «узнай у» и «спроси у».

```
if($alice->is_cmd_start()) {
	...
}

```

### bind\_new\_action

[](#bind_new_action)

`public function bind_new_action(string $action): bool`

Связывает указанную функцию с событием начала нового диалога (новой сессии). В вызываемую функцию передается указатель на $this.

`$action` - Имя функции, которой необходимо передавать управление. Строка. Обязательный параметр.

```
function new_session_action($alice) {
	...
	some code
	...
}
$alice->bind_new_action('new_session_action');

```

### bind\_words\_action

[](#bind_words_action)

`public function bind_words_action(array $words, string $action): bool`

Связывает указанную функцию с событием нахождения одного из заданных слов в запросе пользователя. В вызываемую функцию передается указатель на $this и массив обнаруженных слов.

`$words` - Слова для поиска (в нижнем регистре). Массив. Обязательный параметр;

`$action` - Имя функции, которой необходимо передавать управление. Строка. Обязательный параметр.

```
function find_word_action($words, $alice) {
	...
	some code
	...
}
$alice->bind_words_action(['яблоко', 'груша', 'апельсин'], 'find_word_action');

```

### bind\_percentage\_action

[](#bind_percentage_action)

`public function bind_percentage_action(array $words, int $percentage, string $action): bool`

Связывает указанную функцию с событием превышения (или равенства) заданного процентного нахождения слов в запросе пользователя. Регистр не учитывается. В вызываемую функцию передается указатель на $this и найденное процентное значение.

`$words` - Слова для поиска. Элементы так же могут быть массивами - в таком случае любое из совпадений внутри вложенного массива считается как совпадение всего массива. Массив. Обязательный параметр;

`$percentage` - Процентное значение, при достижении которого выполняется указанная функция. Число. Обязательный параметр;

`$action` - Имя функции, которой необходимо передавать управление. Строка. Обязательный параметр.

```
function percentage_word_action($percent, $alice) {
	...
	some code
	...
}
$alice->bind_percentage_action([['яблоко', 'груша'], 'апельсин'], 75, 'percentage_word_action');

```

### bind\_sentence\_action

[](#bind_sentence_action)

`public function bind_sentence_action(string $text, int $percentage, string $action): bool`

Связывает указанную функцию с событием превышения (или равенства) заданной процентной схожести предложения. В вызываемую функцию передается указатель на $this и найденное процентное значение. В зависимости от значения свойства [sentences](#sentences) метод либо анализирует предложения целиком, либо разбивает их на отдельные слова и производит сравнение каждого из них.

`$text` - Предложение для сравнения схожести. Строка. Обязательный параметр;

`$percentage` - Процентное значение, при достижении которого выполняется указанная функция. Число. Обязательный параметр;

`$action` - Имя функции, которой необходимо передавать управление. Строка. Обязательный параметр.

```
function suggestion_action($percent, $alice) {
	...
	some code
	...
}
$alice->bind_sentence_action('Очистить список покупок', 75, 'suggestion_action');

```

### bind\_template\_action

[](#bind_template_action)

`public function bind_template_action(array $patterns, string $action): bool`

Связывает указанную функцию с событием совпадения фразы пользователя и заданного шаблона. В вызываемую функцию передается указатель на $this и ассоциативный массив, в котором в качестве ключей выступают имена паттернов, а значения заполнены найденными результатами.

`$patterns` - Массив шаблонов поиска. Подробнее см. в описании метода [get\_template\_text](#get_template_text). Массив. Обязательный параметр.

`$action` - Имя функции, которой необходимо передавать управление. Строка. Обязательный параметр.

```
function template_action($patterns, $alice) {
	...
	// $patterns['name'] будет содержать названное пользователем имя
	...
}
$alice->bind_template_action(['Меня зовут {name:word}', 'Мое имя {name:word}'], 'template_action');

```

### bind\_default\_action

[](#bind_default_action)

`public function bind_default_action(string $action): bool`

Связывает указанную функцию с собитием отсутствия других действий. Отлично подходит для обработки ситуаций, когда фраза пользователя не распознана. В вызываемую функцию передается указатель на $this.

`$action` - Имя функции, которой необходимо передавать управление. Строка. Обязательный параметр.

```
function default_action($alice) {
	...
	some code
	...
}
$alice->bind_default_action('default_action');

```

### add\_button

[](#add_button)

`public function add_button(string $title, string $url=null, array $payload=null, bool $hide=false): bool`

Добавляет кнопку в варианты ответа пользователя.

`$title` - Текст кнопки, который будет отправлен навыку по ее нажатию. Могут использоваться [встроенные теги](#%D0%B2%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5-%D1%82%D0%B5%D0%B3%D0%B8). Строка. Обязательный параметр;

`$url` - URL, который должна открывать кнопка. Строка. Не обязательно. По-умолчанию: null.

`$payload` - Произвольные данные, которые Яндекс.Диалоги должны отправить обработчику, если данная кнопка будет нажата. Массив. Не обязательно. По-умолчанию: null.

`$hide` - Признак того, что кнопку нужно убрать после следующей реплики пользователя. Логическое. Не обязательно. По-умолчанию: false.

```
$alice->add_button('Открой Яндекс', 'http://yandex.ru');
$alice->add_button('Сделать заказ', null, ['item' => 42, 'price' => 100], true);

```

### add\_message

[](#add_message)

`public function add_message(string $message, string $tts=null): bool`

Добавляет сообщение в список ответов. Перед отправкой автоматически выбирается один случайный вариант.

`$message` - Текст сообщения для отправки. Могут использоваться [встроенные теги](#%D0%B2%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5-%D1%82%D0%B5%D0%B3%D0%B8). Строка. Обязательный параметр;

`$tts` - Текстовое TTS представление для отзвучивания сообщения ([см.тут](https://tech.yandex.ru/dialogs/alice/doc/speech-tuning-docpage/#speech-tuning)). Могут использоваться [встроенные теги](#%D0%B2%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5-%D1%82%D0%B5%D0%B3%D0%B8). Можно использовать [звуки](https://tech.yandex.ru/dialogs/alice/doc/sounds-docpage/). Строка. Не обязательно. По-умолчанию: $message.

```
$alice->add_message('Среди этих двух сообщений');
$alice->add_message('Будет выбрано только одно', 'уже выбрано только одно');

```

### get\_user\_data

[](#get_user_data)

`public function get_user_data(string $name): string`

Получить значение переменной из данных пользователя.

`$name` - Имя переменной, значение которой необходимо получить. Строка. Обязательный параметр;

```
$user_name = $alice->get_user_data('name');

```

### set\_user\_data

[](#set_user_data)

`public function set_user_data(string $name, mixed $value): bool`

Установить значение переменной в данных пользователя.

`$name` - Имя переменной, значение которой необходимо установить. Строка. Обязательный параметр;

`$value` - Значение переменной, которое необходимо установить. Если задать null, то переменная удалится. Любой тип. Обязательный параметр;

```
$alice->set_user_data('name', 'Иван');
$alice->set_user_data('items', ['Яблоки', 'Бананы', 'Молоко']);
$alice->set_user_data('notes', null);

```

### get\_session\_data

[](#get_session_data)

`public function get_session_data(string $name): string`

Получить значение переменной из сессии пользователя.

`$name` - Имя переменной, значение которой необходимо получить. Строка. Обязательный параметр;

```
$action = $alice->get_session_data('action');

```

### set\_session\_data

[](#set_session_data)

`public function set_session_data(string $name, mixed $value): bool`

Установить значение переменной из сессии пользователя.

`$name` - Имя переменной, значение которой необходимо установить. Строка. Обязательный параметр;

`$value` - Значение переменной, которое необходимо установить. Если задать null, то переменная удалится. Любой тип. Обязательный параметр;

```
$alice->set_session_data('action', 'start');
$alice->set_session_data('progress', ['step' => 2, 'place' => 'home']);
$alice->set_session_data('items', null);

```

### end\_session

[](#end_session)

`public function end_session(): bool`

Завершает диалог с пользователем.

```
$alice->end_session();

```

### use\_phpmorphy

[](#use_phpmorphy)

`public function use_phpmorphy(string $dicts_dir, string $language='ru_RU')`

Включает использование библиотеки [phpMorphy](http://phpmorphy.sourceforge.net/). Вы так же можете самостоятельно вызывать нативные методы библиотеки, использовав в качестве объекта phpMorphy свойство $alice-&gt;phpmorphy. Данную функцию можно отключить в любой момент, присвоив свойству $alice-&gt;phpmorphy значение null.

`$dicts_dir` - Путь к каталогу со словарями. Строка. Обязательный параметр.

`$language` - Язык, для которого будем использовать словарь. Указывается как ISO3166 код страны и ISO639 код языка, разделенные символом подчеркивания (ru\_RU, uk\_UA, en\_EN, de\_DE и т.п.). Строка. Не обязательно. По-умолчанию: "ru\_RU".

```
$alice->use_phpmorphy('vendor/umisoft/phpmorphy/dicts/');

```

### use\_yametrika

[](#use_yametrika)

`public function use_yametrika(string $counter_id)`

Включает использование сервиса [Яндекс.Метрика](https://metrika.yandex.ru/). Данные передаются в момент вызова метода [finish](#finish).

`$counter_id` - ID счетчика, полученный в личном кабинете сервиса. Строка. Обязательный параметр.

```
$alice->use_yametrika('YOU_COUNTER_ID');

```

### yametrika\_rgoal

[](#yametrika_rgoal)

`public function yametrika_rgoal(string $target): bool`

Передача информации о достижении цели в Яндекс.Метрике. Более подробно читайте в [официальной документации сервиса](https://yandex.ru/support/metrika/general/goal-js-event.html#js-event).

`$target` - Идентификатор цели. Строка. Обязательный параметр.

```
$alice->yametrika_rgoal('my_target');

```

### use\_chatbase

[](#use_chatbase)

`public function use_chatbase(string $api_key)`

Включает использование сервиса [Google Chatbase](https://chatbase.com/). Данные передаются в момент вызова метода [finish](#finish).

`$api_key` - API ключ, полученный в личном кабинете сервиса. Строка. Обязательный параметр.

```
$alice->use_chatbase('YOU_CHATBASE_API_KEY');

```

### chatbase\_handled

[](#chatbase_handled)

`public function chatbase_handled(bool $handled=true): bool`

Устанавливает значение флага handled для Google Chatbase. Этим способом рекомендуется "маркировать" те ситуации, когда запрос пользователя не распознан или привел к ошибке. Если не вызывать этот метод, то считается что handled = false.

`$handled` - Значение, которое необходимо установить для handled. Логическое. Не обязательно. По-умолчанию: true.

```
$alice->chatbase_handled();

```

### finish

[](#finish)

`public function finish(bool $return=false): bool`

Производит некоторые подготовительные процедуры и отправляет ответ Яндекс.Диалогам.

`$return` - Возвратить ответ (вместо вывода на экран). Логическое. Не обязательно. По-умолчанию: false.

```
$alice->finish();

```

Встроенные теги
---------------

[](#встроенные-теги)

Некоторые методы (например такие как [add\_button](#add_button) и [add\_message](#add_message)) позволяют использовать встроенные теги:

`[слово1|слово2|...|словоN]` - Выбрать одну строку случайным образом среди перечисленных;

`[date:format]` - Текущая дата/время в формате format (см. подробнее в описании PHP функции [date()](http://php.net/manual/ru/function.date.php));

Используемые библиотеки
-----------------------

[](#используемые-библиотеки)

phpMorphy:

Chatbase PHP:

Server YaMetrika (форк): [https://github.com/avdeevsv91/server\_yametrika](https://github.com/avdeevsv91/server_yametrika)

CRC (by Philip Burggraf):

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 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.

###  Release Activity

Cadence

Every ~104 days

Total

4

Last Release

2324d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/9f88c45c897be24126804556ccd22ef63d58ea036c9e2871862044b1968a908a?d=identicon)[avdeevsv91](/maintainers/avdeevsv91)

---

Top Contributors

[![kasitoru](https://avatars.githubusercontent.com/u/16743879?v=4)](https://github.com/kasitoru "kasitoru (13 commits)")

---

Tags

yandex-aliceyandex-dialogs

### Embed Badge

![Health badge](/badges/thesoultaker48-yandex-dialogs-php/health.svg)

```
[![Health](https://phpackages.com/badges/thesoultaker48-yandex-dialogs-php/health.svg)](https://phpackages.com/packages/thesoultaker48-yandex-dialogs-php)
```

###  Alternatives

[stripe/stripe-php

Stripe PHP Library

4.0k143.3M475](/packages/stripe-stripe-php)[twilio/sdk

A PHP wrapper for Twilio's API

1.6k92.9M270](/packages/twilio-sdk)[knplabs/github-api

GitHub API v3 client

2.2k15.8M187](/packages/knplabs-github-api)[facebook/php-business-sdk

PHP SDK for Facebook Business

90121.9M34](/packages/facebook-php-business-sdk)[meilisearch/meilisearch-php

PHP wrapper for the Meilisearch API

73813.7M114](/packages/meilisearch-meilisearch-php)[google/gax

Google API Core for PHP

263103.1M452](/packages/google-gax)

PHPackages © 2026

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