PHPackages                             k-shym/urfa-client - 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. k-shym/urfa-client

ActiveLibrary[API Development](/categories/api)

k-shym/urfa-client
==================

Universal PHP client billing system NetUp UTM5 based api.xml

2.1.0(2y ago)282.2k↓66.7%9[4 issues](https://github.com/k-shym/URFAClient/issues)GPL-3.0PHPPHP &gt;=5.4CI passing

Since Jan 17Pushed 3mo ago10 watchersCompare

[ Source](https://github.com/k-shym/URFAClient)[ Packagist](https://packagist.org/packages/k-shym/urfa-client)[ RSS](/packages/k-shym-urfa-client/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (3)DependenciesVersions (19)Used By (0)

[![PHP Version Require](https://camo.githubusercontent.com/da23cded20fc41eb0c0638e6fd616542e5e2cf6eb5c3295936c4d7449f24dc70/68747470733a2f2f62616467656e2e6e65742f7061636b61676973742f7068702f6b2d7368796d2f757266612d636c69656e742f6465762d6d61696e3f636f6c6f723d707572706c65)](https://packagist.org/packages/k-shym/urfa-client) [![Latest Version](https://camo.githubusercontent.com/9add50680e9c0240c07ed79bb643cccc16309eec998b508d3c2049fc061ac5da/68747470733a2f2f62616467656e2e6e65742f7061636b61676973742f762f6b2d7368796d2f757266612d636c69656e742f6c6174657374)](https://packagist.org/packages/k-shym/urfa-client) [![Total Downloads](https://camo.githubusercontent.com/3ab1ede3f37612b4a3a689792e83eddb2f1a88f72a1fe2b288877468e23abe2c/68747470733a2f2f62616467656e2e6e65742f7061636b61676973742f64742f6b2d7368796d2f757266612d636c69656e74)](https://packagist.org/packages/k-shym/urfa-client)

URFAClient
==========

[](#urfaclient)

Универсальный PHP клиент для биллинговой системы NetUp UTM5 на основе api.xml

Установка (composer)
--------------------

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

```
composer require k-shym/urfa-client "^2.0"
```

Зависимости
-----------

[](#зависимости)

- UTM 5.2.1-008 &gt;=
- PHP 5.4 &gt;=
- Ext: JSON, OpenSSL, SimpleXML, Hash, Filter

Описание параметров
-------------------

[](#описание-параметров)

optiondefaultописаниеlogin\*—логин администратора или пользователяpassword\*—пароль администратора или пользователя соответственноaddress\*—адрес ядра UTM5port**11758**порт ядра UTM5timeout**30**время ожидания ответа от сервераprotocol**auto****ssl** или **tls** (доступно с версии UTM-5.3-002-update16) или **auto** (доступно с версии UTM-5.3-005-update2, работает с OpenSSL 1.1)admin**true**указываем какой пользователь подключается, если TRUE предоставляет сертификат admin.crt для соединения, используется только для протокола **ssl**api**api\_53-006.xml**путь до файла api.xmlCMD
---

[](#cmd)

```
bin/urfaclient -h

The options are as follows:
   [-a, --api  ]             Path to api.xml
   [-f, --function ]         Name function from api.xml
   [-t, --type ]             Type return (array, json, xml), default: array
   [-l, --list]                    List of functions from api.xml
   [-h, --help ]                   This help
   [-v, --version ]                Version URFAClient

```

Пример
------

[](#пример)

Рассмотрим пример использования библиотеки на примере функции rpcf\_add\_user\_new, у нас есть XML описание:

```

```

И так, нам нужно описать входные параметры (элемент input) в ассоциативный массив. Если в элементе присутствует атрибут `default`, параметр считается необязательным.

Получаем полное описание параметров функции `rpcf_add_user_new` из api.xml:

```
bin/urfaclient -f rpcf_add_user_new -t json
```

```
{
  "login": "",
  "password": "",
  "full_name": "",
  "is_juridical": 0,
  "jur_address": "",
  "act_address": "",
  "flat_number": "",
  "entrance": "",
  "floor": "",
  "district": "",
  "building": "",
  "passport": "",
  "house_id": 0,
  "work_tel": "",
  "home_tel": "",
  "mob_tel": "",
  "web_page": "",
  "icq_number": "",
  "tax_number": "",
  "kpp_number": "",
  "email": "",
  "bank_id": 0,
  "bank_account": "",
  "comments": "",
  "personal_manager": "",
  "connect_date": 0,
  "is_send_invoice": 0,
  "advance_payment": 0,
  "switch_id": 0,
  "port_number": 0,
  "binded_currency_id": 0,
  "parameters_count": [
    {
      "parameter_id": 0,
      "parameter_value": ""
    }
  ],
  "groups_count": [
    {
      "groups": 0
    }
  ],
  "is_blocked": 0,
  "balance": 0,
  "credit": 0,
  "vat_rate": 0,
  "sale_tax_rate": 0,
  "int_status": 0
}
```

На основе данного описания оставляем необходимые нам параметры, порядок параметров неважен.

Как было замечено, разработчики UTM5 не пришли к единому формату описания функций. Отсюда возник вопрос, какое имя давать параметру `for` для элементов массива? Поэтому было принято решение, в качестве имени использовать имя атрибута счетчика `*_count`. В нашем случае будет так:

```
[
    // ...
    'parameters_count' => [
        [
            'parameter_id' => 0,
            'parameter_value' => 'м',
        ],
        [
            'parameter_id' => 1,
            'parameter_value' => '13.06.2014',
        ],
    ],
    'groups_count' => [
        [
            'groups' => 1000,
        ],
        [
            'groups' => 1001,
        ],
    ],
    // ...
];
```

Если попадется элемент `error` будет выброшено исключение *XML Described error:*, а далее атрибуты ошибки.

C условиями `if` все просто, если истина, то заходим внутрь. И содержание обрабатывается, как описано выше.

В итоге, получаем минимальный набор параметров для создания пользователя:

```
require __DIR__ . '/vendor/autoload.php';
use URFAClient\URFAClient;

$urfa = URFAClient::init([
    'login'    => 'init',
    'password' => 'init',
    'address'  => 'localhost',
]);

$result = $urfa->rpcf_add_user_new([
    'login'=>'test',
    'password'=>'test',
]);

$result = $urfa->rpcf_add_user_new('{
  "login": "test2",
  "password": "test2"
}');
```

В переменную `$result` попадут данные которые описаны в элементе `output`.

Тесты
-----

[](#тесты)

```
docker-compose up -d
docker exec -t urfa composer install
docker exec -t urfa vendor/bin/phpunit --coverage-text

```

Возможные проблемы
------------------

[](#возможные-проблемы)

- Тестировалось на версии биллинга UTM-5.3-003, UTM-5.4-004 и UTM-5.5-015
- Тестировались не все функции из api.xml
- При обновлении api.xml обязательно проверяйте используемые функции

По возникшим проблемам присылайте api.xml и полную версию ядра UTM5. Удачи!

###  Health Score

45

—

FairBetter than 93% of packages

Maintenance51

Moderate activity, may be stable

Popularity31

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity67

Established project with proven stability

 Bus Factor1

Top contributor holds 97.5% 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 ~207 days

Recently: every ~175 days

Total

17

Last Release

827d ago

Major Versions

1.3.5 → 2.0.02022-03-12

PHP version history (2 changes)1.0.8PHP &gt;=5.3.3

2.0.0PHP &gt;=5.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/7a93fc5d3eeecc577dacdd733cbd6d082f47754311edab33ba0c7a0d1ab7f965?d=identicon)[k-shym](/maintainers/k-shym)

---

Top Contributors

[![k-shym](https://avatars.githubusercontent.com/u/2196646?v=4)](https://github.com/k-shym "k-shym (118 commits)")[![bogdik](https://avatars.githubusercontent.com/u/15012904?v=4)](https://github.com/bogdik "bogdik (2 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (1 commits)")

---

Tags

phputm5utm5netupurfa

### Embed Badge

![Health badge](/badges/k-shym-urfa-client/health.svg)

```
[![Health](https://phpackages.com/badges/k-shym-urfa-client/health.svg)](https://phpackages.com/packages/k-shym-urfa-client)
```

###  Alternatives

[stripe/stripe-php

Stripe PHP Library

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

A PHP wrapper for Twilio's API

1.6k92.9M272](/packages/twilio-sdk)[facebook/php-business-sdk

PHP SDK for Facebook Business

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

PHP wrapper for the Meilisearch API

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

Google API Core for PHP

265103.1M454](/packages/google-gax)[google/common-protos

Google API Common Protos for PHP

173103.7M50](/packages/google-common-protos)

PHPackages © 2026

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