Rename namespace to Tezmanian and prepare for Packagist
PHP Composer / build (push) Successful in 36s

- Namespace Tez\Utils -> Tezmanian\Utils, package tez/* -> tezmanian/*
- Add keywords, homepage, authors and support metadata
- Drop VCS repositories (resolved via Packagist)
- Remove stale composer.lock, set license holder
This commit is contained in:
2026-10-13 17:15:47 +02:00
parent 3970323bd1
commit 18e2a4bb02
15 changed files with 69 additions and 36 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
MIT License MIT License
Copyright (c) 2026 Development Copyright (c) 2026 René Halberstadt
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
associated documentation files (the "Software"), to deal in the Software without restriction, including associated documentation files (the "Software"), to deal in the Software without restriction, including
+27 -11
View File
@@ -1,13 +1,20 @@
# tez-utils-validate # tez-utils-validate
[![CI](https://github.com/tezmanian/tez-utils-validate/actions/workflows/php.yml/badge.svg)](https://github.com/tezmanian/tez-utils-validate/actions/workflows/php.yml)
[![Packagist Version](https://img.shields.io/packagist/v/tezmanian/utils-validate)](https://packagist.org/packages/tezmanian/utils-validate)
[![PHP](https://img.shields.io/packagist/php-v/tezmanian/utils-validate)](https://packagist.org/packages/tezmanian/utils-validate)
[![License: MIT](https://img.shields.io/packagist/l/tezmanian/utils-validate)](LICENSE)
PHP validation toolkit with guard assertions, composable rules, schema validation, strict type casting, and array-item validation. PHP 8.3+, no framework dependencies. PHP validation toolkit with guard assertions, composable rules, schema validation, strict type casting, and array-item validation. PHP 8.3+, no framework dependencies.
## Installation ## Installation
```bash ```bash
composer require tez/utils-validate composer require tezmanian/utils-validate
``` ```
Package: [`tezmanian/utils-validate`](https://packagist.org/packages/tezmanian/utils-validate) · Namespace: `Tezmanian\Utils\Validate`
## Components ## Components
| Class | Purpose | | Class | Purpose |
@@ -26,7 +33,7 @@ composer require tez/utils-validate
Assertions that return the value on success, making them suitable for inline use. Throws `RuntimeException` by default; the exception can be overridden with a class name, an instance, or a closure. Assertions that return the value on success, making them suitable for inline use. Throws `RuntimeException` by default; the exception can be overridden with a class name, an instance, or a closure.
```php ```php
use Tez\Utils\Validate\Guard; use Tezmanian\Utils\Validate\Guard;
// Basic assertions // Basic assertions
$name = Guard::notNull($request->get('name')); $name = Guard::notNull($request->get('name'));
@@ -60,7 +67,7 @@ Guard::notNull($value, fn() => new \DomainException('Value is required'));
Stateless boolean predicates. Return `true`/`false` — never throw. Stateless boolean predicates. Return `true`/`false` — never throw.
```php ```php
use Tez\Utils\Validate\Rules; use Tezmanian\Utils\Validate\Rules;
Rules::isEmail('user@example.com'); // true Rules::isEmail('user@example.com'); // true
Rules::isUrl('https://example.com'); // true Rules::isUrl('https://example.com'); // true
@@ -90,8 +97,8 @@ Rules::isDate('23.04.2026', 'd.m.Y'); // true
Combines multiple predicates into one using AND, OR, or NONE logic. Each method returns a `Closure` that can be passed directly to `Guard::that()`. Combines multiple predicates into one using AND, OR, or NONE logic. Each method returns a `Closure` that can be passed directly to `Guard::that()`.
```php ```php
use Tez\Utils\Validate\Composite; use Tezmanian\Utils\Validate\Composite;
use Tez\Utils\Validate\Rules; use Tezmanian\Utils\Validate\Rules;
$isStrongPassword = Composite::all( $isStrongPassword = Composite::all(
fn($v) => Rules::minLength($v, 8), fn($v) => Rules::minLength($v, 8),
@@ -125,8 +132,8 @@ Validates an array against a shape definition. Fails fast on the first violation
Prefix with `?` to mark a field as optional (absent or `null` is accepted). Prefix with `?` to mark a field as optional (absent or `null` is accepted).
```php ```php
use Tez\Utils\Validate\Schema; use Tezmanian\Utils\Validate\Schema;
use Tez\Utils\Validate\Guard; use Tezmanian\Utils\Validate\Guard;
Schema::validate($data, [ Schema::validate($data, [
'name' => 'string', 'name' => 'string',
@@ -155,7 +162,7 @@ user.profile.displayName: required field missing
Strict type coercion — throws `UnexpectedValueException` when a value cannot be unambiguously converted, unlike PHP built-ins that silently truncate or guess. Strict type coercion — throws `UnexpectedValueException` when a value cannot be unambiguously converted, unlike PHP built-ins that silently truncate or guess.
```php ```php
use Tez\Utils\Validate\TypeCast; use Tezmanian\Utils\Validate\TypeCast;
TypeCast::toInt('42'); // 42 TypeCast::toInt('42'); // 42
TypeCast::toInt(3.0); // 3 TypeCast::toInt(3.0); // 3
@@ -184,8 +191,8 @@ TypeCast::toNullableBool(null); // null
Applies a validation rule to every item in an array. Fails fast on the first violation and prepends the index path to the exception message. Applies a validation rule to every item in an array. Fails fast on the first violation and prepends the index path to the exception message.
```php ```php
use Tez\Utils\Validate\Each; use Tezmanian\Utils\Validate\Each;
use Tez\Utils\Validate\Guard; use Tezmanian\Utils\Validate\Guard;
$orders = [ $orders = [
['amount' => 50], ['amount' => 50],
@@ -213,6 +220,15 @@ The original exception type is preserved, and the original exception is availabl
- PHP 8.3+ - PHP 8.3+
- No runtime dependencies - No runtime dependencies
## Development
```bash
make build && make install
make ci # audit, PHPStan, code style, tests
```
## License ## License
MIT MIT — see [LICENSE](LICENSE).
Author: René Halberstadt
+20 -3
View File
@@ -1,16 +1,33 @@
{ {
"name": "tez/utils-validate", "name": "tezmanian/utils-validate",
"type": "library", "type": "library",
"description": "Lightweight PHP validation toolkit: guard assertions, boolean rules, schema validation, strict type casting, composite predicates, and array-item validation — PHP 8.3+, no dependencies.", "description": "Lightweight PHP validation toolkit: guard assertions, boolean rules, schema validation, strict type casting, composite predicates, and array-item validation — PHP 8.3+, no dependencies.",
"keywords": [
"validation",
"guard",
"schema",
"php"
],
"homepage": "https://github.com/tezmanian/tez-utils-validate",
"license": "MIT", "license": "MIT",
"authors": [
{
"name": "René Halberstadt",
"email": "tezmanian@gmail.com"
}
],
"support": {
"issues": "https://github.com/tezmanian/tez-utils-validate/issues",
"source": "https://github.com/tezmanian/tez-utils-validate"
},
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"Tez\\Utils\\Validate\\": "src/" "Tezmanian\\Utils\\Validate\\": "src/"
} }
}, },
"autoload-dev": { "autoload-dev": {
"psr-4": { "psr-4": {
"Tez\\Utils\\Tests\\Validate\\": "tests/" "Tezmanian\\Utils\\Tests\\Validate\\": "tests/"
} }
}, },
"require": { "require": {
+1 -1
View File
@@ -2,7 +2,7 @@
declare(strict_types=1); declare(strict_types=1);
namespace Tez\Utils\Validate; namespace Tezmanian\Utils\Validate;
/** /**
* Combines boolean predicates with AND / OR / NONE logic. * Combines boolean predicates with AND / OR / NONE logic.
+1 -1
View File
@@ -2,7 +2,7 @@
declare(strict_types=1); declare(strict_types=1);
namespace Tez\Utils\Validate; namespace Tezmanian\Utils\Validate;
/** /**
* Applies a validation callable to every item in an array. * Applies a validation callable to every item in an array.
+1 -1
View File
@@ -2,7 +2,7 @@
declare(strict_types=1); declare(strict_types=1);
namespace Tez\Utils\Validate; namespace Tezmanian\Utils\Validate;
final class Guard final class Guard
{ {
+1 -1
View File
@@ -2,7 +2,7 @@
declare(strict_types=1); declare(strict_types=1);
namespace Tez\Utils\Validate; namespace Tezmanian\Utils\Validate;
/** /**
* Stateless boolean predicates for common validation needs. * Stateless boolean predicates for common validation needs.
+1 -1
View File
@@ -2,7 +2,7 @@
declare(strict_types=1); declare(strict_types=1);
namespace Tez\Utils\Validate; namespace Tezmanian\Utils\Validate;
/** /**
* Validates an array against a shape definition. * Validates an array against a shape definition.
+1 -1
View File
@@ -2,7 +2,7 @@
declare(strict_types=1); declare(strict_types=1);
namespace Tez\Utils\Validate; namespace Tezmanian\Utils\Validate;
/** /**
* Strict type coercion — throws UnexpectedValueException when a value * Strict type coercion — throws UnexpectedValueException when a value
+3 -3
View File
@@ -2,11 +2,11 @@
declare(strict_types=1); declare(strict_types=1);
namespace Tez\Utils\Tests\Validate; namespace Tezmanian\Utils\Tests\Validate;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
use Tez\Utils\Validate\Composite; use Tezmanian\Utils\Validate\Composite;
use Tez\Utils\Validate\Rules; use Tezmanian\Utils\Validate\Rules;
final class CompositeTest extends TestCase final class CompositeTest extends TestCase
{ {
+3 -3
View File
@@ -2,11 +2,11 @@
declare(strict_types=1); declare(strict_types=1);
namespace Tez\Utils\Tests\Validate; namespace Tezmanian\Utils\Tests\Validate;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
use Tez\Utils\Validate\Each; use Tezmanian\Utils\Validate\Each;
use Tez\Utils\Validate\Guard; use Tezmanian\Utils\Validate\Guard;
final class EachTest extends TestCase final class EachTest extends TestCase
{ {
+2 -2
View File
@@ -2,10 +2,10 @@
declare(strict_types=1); declare(strict_types=1);
namespace Tez\Utils\Tests\Validate; namespace Tezmanian\Utils\Tests\Validate;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
use Tez\Utils\Validate\Guard; use Tezmanian\Utils\Validate\Guard;
final class GuardTest extends TestCase final class GuardTest extends TestCase
{ {
+2 -2
View File
@@ -2,10 +2,10 @@
declare(strict_types=1); declare(strict_types=1);
namespace Tez\Utils\Tests\Validate; namespace Tezmanian\Utils\Tests\Validate;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
use Tez\Utils\Validate\Rules; use Tezmanian\Utils\Validate\Rules;
final class RulesTest extends TestCase final class RulesTest extends TestCase
{ {
+3 -3
View File
@@ -2,11 +2,11 @@
declare(strict_types=1); declare(strict_types=1);
namespace Tez\Utils\Tests\Validate; namespace Tezmanian\Utils\Tests\Validate;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
use Tez\Utils\Validate\Guard; use Tezmanian\Utils\Validate\Guard;
use Tez\Utils\Validate\Schema; use Tezmanian\Utils\Validate\Schema;
final class SchemaTest extends TestCase final class SchemaTest extends TestCase
{ {
+2 -2
View File
@@ -2,10 +2,10 @@
declare(strict_types=1); declare(strict_types=1);
namespace Tez\Utils\Tests\Validate; namespace Tezmanian\Utils\Tests\Validate;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
use Tez\Utils\Validate\TypeCast; use Tezmanian\Utils\Validate\TypeCast;
final class TypeCastTest extends TestCase final class TypeCastTest extends TestCase
{ {