PHPackages                             jeyroik/extas-protocols - 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. jeyroik/extas-protocols

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

jeyroik/extas-protocols
=======================

Extas protocols package

3.0.0(5y ago)01.5k9PHP

Since Jul 17Pushed 5y agoCompare

[ Source](https://github.com/jeyroik/extas-protocols)[ Packagist](https://packagist.org/packages/jeyroik/extas-protocols)[ RSS](/packages/jeyroik-extas-protocols/feed)WikiDiscussions master Synced today

READMEChangelog (10)Dependencies (11)Versions (19)Used By (9)

[![tests](https://github.com/jeyroik/extas-protocols/workflows/PHP%20Composer/badge.svg?branch=master&event=push)](https://github.com/jeyroik/extas-protocols/workflows/PHP%20Composer/badge.svg?branch=master&event=push)[![codecov.io](https://camo.githubusercontent.com/603056363cd21b55cff19f9aac16aa8c43ce526cc8a62b572a428401cc2993bc/68747470733a2f2f636f6465636f762e696f2f67682f6a6579726f696b2f65787461732d70726f746f636f6c732f636f7665726167652e7376673f6272616e63683d6d6173746572)](https://camo.githubusercontent.com/603056363cd21b55cff19f9aac16aa8c43ce526cc8a62b572a428401cc2993bc/68747470733a2f2f636f6465636f762e696f2f67682f6a6579726f696b2f65787461732d70726f746f636f6c732f636f7665726167652e7376673f6272616e63683d6d6173746572)[![PHPStan Enabled](https://camo.githubusercontent.com/441b5874ce4df0a2defc892979c96c46889b69cb32119d04f0b48626349f8bc9/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048505374616e2d656e61626c65642d627269676874677265656e2e7376673f7374796c653d666c6174)](https://github.com/phpstan/phpstan)[![](https://camo.githubusercontent.com/5893e2b15da975e1abf8857d1efcc8ddb114a88fa13bb5ff19a6cca7105293e2/68747470733a2f2f6170692e636f6465636c696d6174652e636f6d2f76312f6261646765732f61326561616264663630623462393837313739612f6d61696e7461696e6162696c697479)](https://codeclimate.com/github/jeyroik/extas-protocols/maintainability)[![Latest Stable Version](https://camo.githubusercontent.com/da141b3f5746c45200e24c40ef9a30a68ab3d47f7a526e457a61a8ca2148e5e1/68747470733a2f2f706f7365722e707567782e6f72672f6a6579726f696b2f65787461732d70726f746f636f6c732f76)](//packagist.org/packages/jeyroik/extas-q-crawlers)[![Total Downloads](https://camo.githubusercontent.com/06e9b30d5e1c80be020ed97b7661db663a9d39b0ac5edda1e0b4773b7ba5e5ee/68747470733a2f2f706f7365722e707567782e6f72672f6a6579726f696b2f65787461732d70726f746f636f6c732f646f776e6c6f616473)](//packagist.org/packages/jeyroik/extas-q-crawlers)[![Dependents](https://camo.githubusercontent.com/00708fce22018d7fd15f4da458464fc26616496d5c287313ce4f0cfd1e638823/68747470733a2f2f706f7365722e707567782e6f72672f6a6579726f696b2f65787461732d70726f746f636f6c732f646570656e64656e7473)](//packagist.org/packages/jeyroik/extas-q-crawlers)

Описание
========

[](#описание)

Пакет для поддержки протоколов для Extas'a.

Использование
=============

[](#использование)

Создаём протокол
----------------

[](#создаём-протокол)

```
namespace my\extas\protocols;

use extas\components\protocols\Protocol;use Psr\Http\Message\RequestInterface;

class JsonProtocol extends Protocol
{
    public function __invoke(array &$args = [], RequestInterface $request = null) : void{
    {
        $json = file_get_contents('php://input');
        if ($json) {
            $jsonData = json_decode($json, true);
            $args = array_merge($args, $jsonData);
        }
    }
}
```

Установка протокола
-------------------

[](#установка-протокола)

### В extas-совместимой конфигурации

[](#в-extas-совместимой-конфигурации)

```
{
  "protocols": [
    {
      "name": "json",
      "title": "JSON protocol",
      "description": "JSON protocol, extracting from php://input",
      "accept": ["application/json", "json"],
      "class": "my\\extas\\protocols\\JsonProtocol"
    }
  ]
}
```

### Установка

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

`/vendor/bin/extas i`

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

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

```
use extas\interafces\protocols\IProtocol;
use extas\components\SystemContainer;

/**
 * @param Psr\Http\Message\RequestInterface $request
 * @param Psr\Http\Message\ResponseInterface $response
 * @param array $args
 */
function ($request, $response, $args) {
    /**
     * @var $protocols IProtocol[]
     */
    $protocols = $this->protocolRepository()->all([
        IProtocol::FIELD__ACCEPT => [$request->getHeader('ACCEPT'), '*']
    ]);

    foreach ($protocols as $protocol) {
        $protocol($args, $request);
    }

    print_r($args); // содержит данные из json
}
```

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity17

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity67

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

Recently: every ~20 days

Total

17

Last Release

2087d ago

Major Versions

0.2.0 → 1.0.02020-03-06

1.0.3 → 2.0.02020-05-05

2.1.1 → v3.x-dev2020-08-24

### Community

Maintainers

![](https://www.gravatar.com/avatar/2aaec5c4bade6ab2b5d1a0f7d97ab4e0ff2ce83937f76499b2888ad16cde5e04?d=identicon)[jeyroik](/maintainers/jeyroik)

---

Top Contributors

[![jeyroik](https://avatars.githubusercontent.com/u/6348124?v=4)](https://github.com/jeyroik "jeyroik (25 commits)")

---

Tags

extasphp

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/jeyroik-extas-protocols/health.svg)

```
[![Health](https://phpackages.com/badges/jeyroik-extas-protocols/health.svg)](https://phpackages.com/packages/jeyroik-extas-protocols)
```

PHPackages © 2026

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