php-architecture-kit/technical
最新稳定版本:1.0.1
Composer 安装命令:
composer require php-architecture-kit/technical
包简介
Technical classes, interfaces and utilities.
README 文档
README
Technical classes, interfaces and utilities for PHP applications. A lightweight, zero-dependency utility library providing common low-level helpers.
Features
Assert- Validation utilities with customizable exception typesArrayTransformation- Array manipulation helpers- No dependencies - Only requires PHP 7.4+
- Framework-agnostic - Works with any PHP project
Installation
composer require php-architecture-kit/technical
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
Assert
| Method | Description |
|---|---|
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 string |
Both 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
| Method | Description |
|---|---|
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
MIT
统计信息
- 总下载量: 3
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 9
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-05-06