PHPackages                             php-architecture-kit/technical - 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. php-architecture-kit/technical

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

php-architecture-kit/technical
==============================

Technical classes, interfaces and utilities.

1.0.1(1mo ago)061MITPHPPHP ^7.4 || ^8.0

Since May 6Pushed 1mo agoCompare

[ Source](https://github.com/php-architecture-kit/technical)[ Packagist](https://packagist.org/packages/php-architecture-kit/technical)[ Docs](https://github.com/php-architecture-kit/technical)[ RSS](/packages/php-architecture-kit-technical/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependenciesVersions (3)Used By (1)

php-architecture-kit/technical
==============================

[](#php-architecture-kittechnical)

Technical classes, interfaces and utilities for PHP applications. A lightweight, zero-dependency utility library providing common low-level helpers.

Features
--------

[](#features)

- **`Assert`** - Validation utilities with customizable exception types
- **`ArrayTransformation`** - Array manipulation helpers
- **No dependencies** - Only requires PHP 7.4+
- **Framework-agnostic** - Works with any PHP project

Installation
------------

[](#installation)

```
composer require php-architecture-kit/technical
```

Quick Start
-----------

[](#quick-start)

```
use PhpArchitecture\Technical\Assert;
use PhpArchitecture\Technical\ArrayTransformation;

// Assert all items are instances of a given class
Assert::eachInstanceOf($items, SomeClass::class);

// Assert all items are strings
Assert::eachString($tags);

// Index an array by a derived key
$indexed = ArrayTransformation::indexBy($items, fn($item) => $item->getId());
```

API Reference
-------------

[](#api-reference)

### Assert

[](#assert)

MethodDescription`eachInstanceOf(array $items, string $class, string $exceptionClass, int $displayLimit)`Throws if any item is not an instance of `$class``eachString(array $items, string $exceptionClass, int $displayLimit)`Throws if any item is not a stringBoth methods accept a custom `$exceptionClass` (must implement `Throwable`, defaults to `InvalidArgumentException`) and `$displayLimit` to cap how many invalid items appear in the message.

```
use PhpArchitecture\Technical\Assert;
use RuntimeException;

Assert::eachInstanceOf($commands, Command::class, RuntimeException::class);
Assert::eachString($names, \DomainException::class, displayLimit: 3);
```

### ArrayTransformation

[](#arraytransformation)

MethodDescription`indexBy(array $items, callable $key): array`Re-keys an array using the return value of `$key($item)````
use PhpArchitecture\Technical\ArrayTransformation;

$users = [new User('alice'), new User('bob')];
$byName = ArrayTransformation::indexBy($users, fn(User $u) => $u->getName());
// ['alice' => User, 'bob' => User]
```

License
-------

[](#license)

MIT

###  Health Score

38

—

LowBetter than 83% of packages

Maintenance93

Actively maintained with recent releases

Popularity6

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity39

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

34d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/145db325ca53baabce2d955faebe43d56bc4f3122b9ae463d41ee0e5da487cea?d=identicon)[patrykbaszak](/maintainers/patrykbaszak)

---

Top Contributors

[![patrykbaszak](https://avatars.githubusercontent.com/u/66377724?v=4)](https://github.com/patrykbaszak "patrykbaszak (2 commits)")

---

Tags

utilitiesframework agnostictechnical

### Embed Badge

![Health badge](/badges/php-architecture-kit-technical/health.svg)

```
[![Health](https://phpackages.com/badges/php-architecture-kit-technical/health.svg)](https://phpackages.com/packages/php-architecture-kit-technical)
```

###  Alternatives

[vaimo/composer-patches

Applies a patch from a local or remote file to any package that is part of a given composer project. Patches can be defined both on project and on package level. Optional support for patch versioning, sequencing, custom patch applier configuration and patch command for testing/troubleshooting added patches.

3014.5M22](/packages/vaimo-composer-patches)[lodash-php/lodash-php

A port of Lodash to PHP

527741.7k5](/packages/lodash-php-lodash-php)[kartik-v/yii2-helpers

A collection of useful helper functions for Yii Framework 2.0

933.1M29](/packages/kartik-v-yii2-helpers)[php-flasher/flasher

The foundational PHP library for PHPFlasher, enabling the creation of framework-agnostic flash notifications. Ideal for building custom integrations or for use in PHP projects.

634.7M41](/packages/php-flasher-flasher)[longman/ip-tools

PHP IP Tools for manipulation with IPv4 and IPv6

149253.5k7](/packages/longman-ip-tools)[mathiasverraes/classfunctions

Functions to manipulate class names

34485.8k10](/packages/mathiasverraes-classfunctions)

PHPackages © 2026

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