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

ActiveLibrary

jeyroik/extas-installer-import
==============================

Allow to export/import defined extas-compatible entities

0.1.1(5y ago)05PHPCI failing

Since Aug 10Pushed 5y agoCompare

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

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

[![tests](https://github.com/jeyroik/extas-installer-import/workflows/PHP%20Composer/badge.svg?branch=master&event=push)](https://github.com/jeyroik/extas-installer-import/workflows/PHP%20Composer/badge.svg?branch=master&event=push)[![codecov.io](https://camo.githubusercontent.com/316b8e3f7c4526915f5c539a58240000e2563dc73485b743dab2bed840250509/68747470733a2f2f636f6465636f762e696f2f67682f6a6579726f696b2f65787461732d696e7374616c6c65722d696d706f72742f636f7665726167652e7376673f6272616e63683d6d6173746572)](https://camo.githubusercontent.com/316b8e3f7c4526915f5c539a58240000e2563dc73485b743dab2bed840250509/68747470733a2f2f636f6465636f762e696f2f67682f6a6579726f696b2f65787461732d696e7374616c6c65722d696d706f72742f636f7665726167652e7376673f6272616e63683d6d6173746572)[![](https://camo.githubusercontent.com/bcc5a76517b4b0024626e215920e1cfcf305fe8d32eff8d66beb96304f898049/68747470733a2f2f6170692e636f6465636c696d6174652e636f6d2f76312f6261646765732f30656437306235313934653239663939323131302f6d61696e7461696e6162696c697479)](https://codeclimate.com/github/jeyroik/extas-installer-import/maintainability)[![Latest Stable Version](https://camo.githubusercontent.com/7e11064cd4c8d28bcff5b6880db052abb4f16f53fc86c4fd68e973db3b6a9cd4/68747470733a2f2f706f7365722e707567782e6f72672f6a6579726f696b2f65787461732d696e7374616c6c65722d696d706f72742f76)](//packagist.org/packages/jeyroik/extas-jsonrpc)[![Total Downloads](https://camo.githubusercontent.com/95820e354146cfd38b591912ccc606f79bc2e16f114bd2ebd364b6aad8457c5a/68747470733a2f2f706f7365722e707567782e6f72672f6a6579726f696b2f65787461732d696e7374616c6c65722d696d706f72742f646f776e6c6f616473)](//packagist.org/packages/jeyroik/extas-jsonrpc)[![Dependents](https://camo.githubusercontent.com/85f0908584474a6abe6f24d4958bde58c9fc6bc9437177bec9bb85494285b2cc/68747470733a2f2f706f7365722e707567782e6f72672f6a6579726f696b2f65787461732d696e7374616c6c65722d696d706f72742f646570656e64656e7473)](//packagist.org/packages/jeyroik/extas-jsonrpc)

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

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

Пакет позволяет импортировать только нужные сущности из extas-совместимых пакетов.

Примечание: донорский пакет должен поддерживать экспорт (подробности см. ниже).

Настройка экспорта
==================

[](#настройка-экспорта)

Если пакет желает организовать установку каких-либо сущностей по требованию, то ему необходимо описать секцию экспорта.

`extas.json`

```
{
  "name": "my/package",
  "export": {

  }
}
```

Содержание экспорта идентично содержанию `extas.json`, т.е. например, если в пакете подразумеваются плагины, которые необходимо установить в любом случае и плагины, которые можно устанавливать по желанию, то описание будет выглядеть примерно так:

`extas.json`

```
{
  "name": "my/package",
  "plugins": [
    {
      "class": "plugin/First",
      "stage": "some.stage"
    }
  ],
  "export": {
    "plugins": [
      {
        "class": "plugin/Second",
        "stage": "any.stage",
        "install_on": "install"
      }
    ]
  }
}
```

`Внимание:` для плагинов и расширений необходимо учитывать тот факт, что механизм импорта подключается на этапе установки (т.е. после инициализации). В связи с этим, для плагинов и расширений на экспорт, необходимо явно указывать стадию установки (`install_on: install`).

Настройка импорта
=================

[](#настройка-импорта)

`extas.json`

```
{
  "name": "my/package2",
  "import": {
    "from": {
      "my/package": {
        "plugins": "plugin/Second"
      }
    },
    "parameters": {
      "on_miss_package": {
        "name": "on_miss_package",
        "value": "continue"
      },
      "on_miss_section": {
        "name": "on_miss_section",
        "value": "throw"
      }
    }
  }
}
```

- `from` в этом разделе указываются пакеты, из которых требуется произвести импорт.
- `parameters` параметры импорта, определяют поведение в случаях, когда не найден пакет для импорта или запрашиваемая секция внутри него. Возможные значения: `continue` - просто перейти к следующему пакету/следующей секции, `throw` - выбросить ошибку, весь импорт прерывается.

Пакет предоставляет две стадии (они запускаются именно в следующем порядке):

- `extas.package.export.build.` - например, `extas.package.export.build.plugins` для плагинов.
- `extas.package.export.build`

Интерфейс стадий идентичный, его можно найти в `src/interfaces/stages/IStagePackageExportBuild`.

Данные стадии предназначены для интерпретации значения секций в разделе `from`. Таким образом, имеется возможность организовать свой формат.

Формат описания импорта из коробки
----------------------------------

[](#формат-описания-импорта-из-коробки)

Из коробки пакет предоставляет механизм поиска сущностей по полю - `extas\components\plugins\export\PluginExportByField`.

Данный механизм позволяет в параметрах плагина указать поле и по нему фильтровать сущности:

```
{
  "name": "my/package2",
  "import": {
    "from": {
      "my/package": {
        "plugins": "plugin/Second"
      }
    }
  }
}
```

Из коробки плагин обрабатывает секции `plugins` и `extensions`. По вышеприведённому примеру, из пакета `my/package` будет импортирован только плагин с классом `plugin/Second`.

Также имеется возможность указать несколько сущностей:

```
{
  "name": "my/package2",
  "import": {
    "from": {
      "my/package": {
        "plugins": ["plugin/Second", "plugin/Third"]
      }
    }
  }
}
```

Пример описания плагина с указанием поля см. в `extas.json` данного пакета.

###  Health Score

21

—

LowBetter than 19% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity47

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

Total

3

Last Release

2046d ago

### 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 (12 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

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

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

PHPackages © 2026

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