PHPackages                             kneu/api - 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. kneu/api

ActiveLibrary[API Development](/categories/api)

kneu/api
========

PHP client for KNEU REST API Service

v1.1.4(2mo ago)042MITAPI BlueprintPHP &gt;=5.5

Since Sep 9Pushed 2mo ago1 watchersCompare

[ Source](https://github.com/berejant/kneu-api)[ Packagist](https://packagist.org/packages/kneu/api)[ RSS](/packages/kneu-api/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependenciesVersions (9)Used By (0)

PHP client for KNEU RESTful API Service
=======================================

[](#php-client-for-kneu-restful-api-service)

This PHP Library provide programmatic user-friendly interface to work with [the KNEU RESTful API and OAuth 2.0](http://docs.kneu.apiary.io/).

Ця PHP-бібліотека забезпечує зручний програмний інтерфейс для роботи з [КНЕУ RESTful API та протоколом OAuth 2.0](http://docs.kneu.apiary.io/).

Встановлення
------------

[](#встановлення)

Додати бібліотеку до Вашого проекту за допомогою Composer

```
composer require kneu/api

```

Опис методів
------------

[](#опис-методів)

`$api = Kneu\Api::createWithOauthToken($client_id, $client_secret, $code, $redirect_uri): Kneu\Api`
---------------------------------------------------------------------------------------------------

[](#api--kneuapicreatewithoauthtokenclient_id-client_secret-code-redirect_uri-kneuapi)

Завершити процедуру oauth - отримати access\_token на основі отриманого від клієнта значення code.

- **Parameters:**

    - `$client_id` — `int` — ID додатку, який надається адміністратором
    - `$client_secret` — `string` — Секрет додатку, який надається адміністратором
    - `$code` — `string` — Код отриманий з браузера користувача
    - `$redirect_uri` — `string` — URL стороннього додатку (домену), на який була виконана переадресація з параметром code.
- **Returns:** `\Kneu\Api` - об'єкт классу `\Kneu\Api` для подальших викликів API
- **Exceptions:**

    - `Kneu\CurlException`
    - `Kneu\JsonException`
    - `Kneu\ApiException`

`$api = Kneu\Api::createWithServerToken($client_id, $client_secret): Kneu\Api`
------------------------------------------------------------------------------

[](#api--kneuapicreatewithservertokenclient_id-client_secret-kneuapi)

Авторизація стороннього серверу для роботи з API (імпорту списку факультетів, кафедр, викладачів, академічних груп, спеціальностей).

- **Parameters:**
    - `$client_id` — `int` — ID додатку, який надається адміністратором
    - `$client_secret` — `string` — Секрет додатку, який надається адміністратором
- **Returns:** `\stdClass` - об'єкт классу `\Kneu\Api` для подальших викликів API

`getAccessToken(): ?string`
---------------------------

[](#getaccesstoken-string)

Отримати access\_token, який був отриманний після createWithServerToken або createWithOauthToken.

`setReturnAssociative()`
------------------------

[](#setreturnassociative)

За замовчуванням, методи повертають дані як об'єкти stdClass. Метод `setReturnAssociative()` дозволяє змінити тип данних на асоціативний массив.

```
$facultyStdClassObject = $api->getFaculty(1);
var_dump($facultyStdClassObject, $facultyStdClassObject->name);
setReturnAssociative();
$facultyAssocArray = $api->getFaculty(1);
var_dump($facultyAssocArray, $facultyAssocArray['name']); =>
 int(1)
  ["name"]=> string(44) "Економіки та управління"
}
string(44) "Економіки та управління"
DUMP;
```

`getUser()`
-----------

[](#getuser)

Отримати інформацію про поточного користувача з поточним access\_token. Інформація про користувача доступна лише після виклику oauthToken(). При використанні авторизації серверу (serverToken()) - інформація про користувача не надається.

- **Returns:** `\stdClass` — має властивості:
    - **id** - `integer` - ідентифікатор користувача,
    - **email** - `string`,
    - **last\_name** - `string`,
    - **first\_name** - `string`,
    - **middle\_name** - `string`,
    - **type** - `enum("student", "teacher", "simple")`
    - **student\_id** - `null|integer` - ідентифікатор облікового запису студента (не номер залікової книжки)
    - **group\_id** - `null|integer` - ідентифікатор академічної групи студента
    - **teacher\_id** - `null|integer` - ідентифікатор викладача
    - **department\_id** - `null|integer` - ідентифікатор кафедри, до якої належить викладач
    - **sex** - `null|enum("male", "female")` - Стать (чоловік/жінка), доступно лише для студентів

`getFaculties([array $filters = [],] [[integer $offset = null,] integer $limit = null]): Generator`
---------------------------------------------------------------------------------------------------

[](#getfacultiesarray-filters---integer-offset--null-integer-limit--null-generator)

Отримати перелік факультетів

```
$api->getFaculties();
$api->getFaculties($limit);
$api->getFaculties($offset, $limit);
getTeachers(); // all teachers
$api->getTeachers(['faculty_id' => 999]); // by faculty
$api->getTeachers(['department_id' => 999]); // by department
$api->getTeachers($filters);
$api->getTeachers($filters, $limit);
$api->getTeachers($filters, $offset, $limit);
$api->getTeachers($offset, $limit);
$api->getTeachers($limit);

 999]); // by faculty
$api->getSpecialties($filters);
$api->getSpecialties($filters, $limit);
$api->getSpecialties($filters, $offset, $limit);
$api->getSpecialties($offset, $limit);
$api->getSpecialties($limit);
 object(stdClass) (3) {
        ["id"] => int(214)
        ["code"] => string(5) "8.122"
        ["name"] => string(85) "Комп’ютерні науки та інформаційні технології"
      }
      ["faculty"] => object(stdClass) (2) {
        ["id"] => int(9)
        ["name"] => string(63) "Інформаційних систем і технологій"
      }
    }
    */

} elseif ('teacher' == $user->type) {
    $teacher = $api->getTeacher($user->teacher_id);
    var_dump($teacher);
    /*
    object(stdClass)#4 (5) {
      ["id"] => int(999)
      ["department_id"] => int(43)
      ["first_name"] => string(4) "Іван"
      ["middle_name"] => string(8) "Іванович"
      ["last_name"] => string(6) "Іванов"
      ["user"]=> object(stdClass)#5 (2) {
         ["id"] => int(5019)
         ["login"] => string(19) "example@gmail.com"
      }
      ["department"]=> object(stdClass)#6 (3) {
         ["id"] => int(21)
         ["faculty_id"] => int(3)
         ["name"] => string(55) "Цивільного та трудового права"
      }
    }
    */

    $department = $api->getDepartment($user->department_id); // or $teacher->department_id
    var_dump($department);
    /*
    object(stdClass) (3) {
      ["id"] => int(99)
      ["faculty_id"] => int(9)
      ["name"] => string(61) "Інформаційних систем в економіці"
      ["faculty"]=> object(stdClass)#3 (2) {
        ["id"] => int(3)
        ["name"] => string(35) "Юридичний інститут"
      }
    }
    */
```

### Авторизація серверу та імпорт бази даних

[](#авторизація-серверу-та-імпорт-бази-даних)

```
require __DIR__ . '/vendor/autoload.php';

$api = Kneu\Api::createWithServerToken(__CLIENT_ID__, "__CLIENT_SECRET__")

try {

     foreach($api->getDepartments(['faculty_id' => 3]) as $teacher) {
         // do anything with $teacher...
     }

     /** @var stdClass $teacher */
     foreach($api->getTeachers(['department_id' => 21]) as $teacher) {
         // do anything with $teacher...
     }

     /** @var stdClass $student */
     foreach($api->getStudents(['group_id' => 17867]) as $student) {
         // do anything with $teacher...
     }

/* Обробка помилок - або кожну помилку окремо або один єдиний блок catch(\Exception $e) */
} catch (\Kneu\CurlException $e) {
    var_dump($e);

} catch (\Kneu\JsonException $e) {
    var_dump($e);

} catch (\Kneu\ApiException $e) {
    var_dump($e);

/*  або замість трьох блоків catch - один, який перехоплює будь-які виключення Exception */
} catch (\Exception $e) {
    var_dump($e);
}
```

###  Health Score

43

—

FairBetter than 89% of packages

Maintenance84

Actively maintained with recent releases

Popularity8

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity63

Established project with proven stability

 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 ~448 days

Recently: every ~340 days

Total

8

Last Release

81d ago

PHP version history (2 changes)v1.0.1PHP &gt;=5.3.0

v1.0.0PHP &gt;=5.5

### Community

Maintainers

![](https://www.gravatar.com/avatar/f83e226d7d49c49c3c7fbb7348c2a8fdbe9a49f3ce4622fbe13a40e1045b9584?d=identicon)[berejant](/maintainers/berejant)

---

Top Contributors

[![berejant](https://avatars.githubusercontent.com/u/6256227?v=4)](https://github.com/berejant "berejant (51 commits)")

### Embed Badge

![Health badge](/badges/kneu-api/health.svg)

```
[![Health](https://phpackages.com/badges/kneu-api/health.svg)](https://phpackages.com/packages/kneu-api)
```

###  Alternatives

[exsyst/swagger

A php library to manipulate Swagger specifications

35916.4M7](/packages/exsyst-swagger)[hubspot/api-client

Hubspot API client

24016.2M20](/packages/hubspot-api-client)[pocketmine/bedrock-protocol

An implementation of the Minecraft: Bedrock Edition protocol in PHP

172445.0k13](/packages/pocketmine-bedrock-protocol)[botman/driver-telegram

Telegram driver for BotMan

93459.5k6](/packages/botman-driver-telegram)

PHPackages © 2026

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