PHPackages                             jeyroik/extas-repo-toolkit - 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-repo-toolkit

ActiveLibrary

jeyroik/extas-repo-toolkit
==========================

Toolkit for simplifying working with Extas repositories

0.1.0(2y ago)027PHP

Since Jun 6Pushed 2y ago1 watchersCompare

[ Source](https://github.com/jeyroik/extas-repo-toolkit)[ Packagist](https://packagist.org/packages/jeyroik/extas-repo-toolkit)[ RSS](/packages/jeyroik-extas-repo-toolkit/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (6)Versions (3)Used By (0)

extas-repo-toolkit
==================

[](#extas-repo-toolkit)

Tool KIt for Extas repositories

[![PHP Composer](https://github.com/jeyroik/extas-repo-toolkit/workflows/PHP%20Composer/badge.svg?branch=master)](https://github.com/jeyroik/extas-repo-toolkit/workflows/PHP%20Composer/badge.svg?branch=master)[![codecov.io](https://camo.githubusercontent.com/63182b9148c2c8b54686d61fd3c5b3c051a4d379cf11f8bdbbe04b6e6b1ad047/68747470733a2f2f636f6465636f762e696f2f67682f6a6579726f696b2f65787461732d7265706f2d746f6f6c6b69742f636f7665726167652e7376673f6272616e63683d6d6173746572)](https://camo.githubusercontent.com/63182b9148c2c8b54686d61fd3c5b3c051a4d379cf11f8bdbbe04b6e6b1ad047/68747470733a2f2f636f6465636f762e696f2f67682f6a6579726f696b2f65787461732d7265706f2d746f6f6c6b69742f636f7665726167652e7376673f6272616e63683d6d6173746572)[![](https://camo.githubusercontent.com/af696590f30a69b320441e3bb3d940aeef24800b9771377741ce2992e8dc5873/68747470733a2f2f6170692e636f6465636c696d6174652e636f6d2f76312f6261646765732f65653935326365373538636665393232613264372f6d61696e7461696e6162696c697479)](https://codeclimate.com/github/jeyroik/extas-repo-toolkit/maintainability)[![Latest Stable Version](https://camo.githubusercontent.com/ec0244ba7670bee41b71aaebdd2a764878939a8f4567c775a4fa4deb7b839fd2/68747470733a2f2f706f7365722e707567782e6f72672f6a6579726f696b2f65787461732d7265706f2d746f6f6c6b69742f76)](//packagist.org/packages/jeyroik/extas-repo-toolkit)[![Total Downloads](https://camo.githubusercontent.com/77add6e6a30c4ca48254fba674c1fb693450bbc042fcd09d54bc95e45f6b0123/68747470733a2f2f706f7365722e707567782e6f72672f6a6579726f696b2f65787461732d7265706f2d746f6f6c6b69742f646f776e6c6f616473)](//packagist.org/packages/jeyroik/extas-repo-toolkit)[![Dependents](https://camo.githubusercontent.com/b7a7537cd6bac8abad66290ad8e4c1d3709d2cc591b5f807bfc7215aae0db16b/68747470733a2f2f706f7365722e707567782e6f72672f6a6579726f696b2f65787461732d7265706f2d746f6f6c6b69742f646570656e64656e7473)](//packagist.org/packages/jeyroik/extas-repo-toolkit)

usage
=====

[](#usage)

Typically you'll use this package in an `extas.storage` configuration with the `jeyroik/extas-config-php` plugin.

So as precondition you have an `extas.storage.php` (or a `extas.app.storage.php`):

```
return [
    //...,
    'tables' => [
        "my_entities" => [
            "namespace" => "repositories",
            "item_class" => "\\myvendor\\components\\myentities\\MyEntity",
            "pk" => "id",
            "code" => [

            ]
        ],
    ]
];
```

Current tollkit is supposed to use in the `code` section, see examples below.

generate uuid for an item
-------------------------

[](#generate-uuid-for-an-item)

```
use extas\components\repositories\tools\RepoItem
return [
    //...,
    'tables' => [
        "my_entities" => [
            "namespace" => "repositories",
            "item_class" => "\\myvendor\\components\\myentities\\MyEntity",
            "pk" => "id",
            "code" => [
                // if your item implements extas\interfaces\IHaveUUID, if not, please use ::setUuid($item, 'id_field_name')
                "create-before" => '\\' . RepoItem::class . '::setId($item);'
            ]
        ],
    ]
];
```

check item existing
-------------------

[](#check-item-existing)

```
use extas\components\repositories\tools\RepoItem
return [
    //...,
    'tables' => [
        "my_entities" => [
            "namespace" => "repositories",
            "item_class" => "\\myvendor\\components\\myentities\\MyEntity",
            "pk" => "id",
            "code" => [
                "create-before" => '\\' . RepoItem::class . '::throwIfExist($this, $item, [\'fieldName\']);'
            ]
        ],
    ]
];
```

check required fields
---------------------

[](#check-required-fields)

```
use extas\components\repositories\tools\RepoItem
return [
    //...,
    'tables' => [
        "my_entities" => [
            "namespace" => "repositories",
            "item_class" => "\\myvendor\\components\\myentities\\MyEntity",
            "pk" => "id",
            "code" => [
                "create-before" => '\\' . RepoItem::class . '::require($item, [\'fieldName\']);'
            ]
        ],
    ]
];
```

hashing item field
------------------

[](#hashing-item-field)

```
use extas\components\repositories\tools\RepoItem
return [
    //...,
    'tables' => [
        "my_entities" => [
            "namespace" => "repositories",
            "item_class" => "\\myvendor\\components\\myentities\\MyEntity",
            "pk" => "id",
            "code" => [
                "create-before" => '\\' . RepoItem::class . '::sha1($item, [\'fieldName\']);'
            ]
        ],
    ]
];
```

encrypting item field
---------------------

[](#encrypting-item-field)

```
use extas\components\repositories\tools\RepoItem
return [
    //...,
    'tables' => [
        "my_entities" => [
            "namespace" => "repositories",
            "item_class" => "\\myvendor\\components\\myentities\\MyEntity",
            "pk" => "id",
            "code" => [
                // openssl with key encrypting is used by default, you can determ another way by passing third param
                // see Encryption section below
                "create-before" => '\\' . RepoItem::class . '::encrypt($item, [\'fieldName\']);',
                "one-after" => '\\' . RepoItem::class . '::decrypt($item, [\'fieldName\'])'
            ]
        ],
    ]
];
```

combine several checks at once
------------------------------

[](#combine-several-checks-at-once)

```
use extas\components\repositories\tools\RepoItem
return [
    //...,
    'tables' => [
        "my_entities" => [
            "namespace" => "repositories",
            "item_class" => "\\myvendor\\components\\myentities\\MyEntity",
            "pk" => "id",
            "code" => [
                "create-before" => '\\' . RepoItem::class . '::multiple($this, $item, [\'setId\' => '',...]);'
            ]
        ],
    ]
];
```

Don't forget you can move hard code into another file and attach it:

```
//resources/multicheck.php
/*
 * @var IItem $item
 * @var IRepository $this
 */

return RepoItem::multiple($this, $item, [
    'setId' => ['field1'],
    'require' => ['field1', 'field2'],
    'throwIfExist' => ['field1'],
    //...
]);

//extas.storage.php
use extas\components\repositories\tools\Injector
return [
    //...,
    'tables' => [
        "my_entities" => [
            "namespace" => "repositories",
            "item_class" => "\\myvendor\\components\\myentities\\MyEntity",
            "pk" => "id",
            "code" => [
                "create-before" => Injector::get('/resources/multicheck')
            ]
        ],
    ]
];
```

###  Health Score

19

—

LowBetter than 10% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity35

Early-stage or recently created project

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

Total

2

Last Release

1072d 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 (3 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

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

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

PHPackages © 2026

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