Compare commits

...

8 Commits

Author SHA1 Message Date
rhalberstadt 4970d39b13 Rename namespace to Tezmanian and prepare for Packagist
PHP Composer / build (push) Successful in 40s
- 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
2026-10-13 19:48:18 +02:00
rhalberstadt 5c06afc691 Fix style
PHP Composer / build (push) Successful in 41s
2026-08-23 20:10:53 +02:00
rhalberstadt 5fd843f8c4 Updated Namespace
PHP Composer / build (push) Failing after 40s
2026-08-23 20:06:44 +02:00
rhalberstadt 63300de69c add keywords, authors and homepage for Packagist
PHP Composer / build (push) Successful in 2m17s
2026-08-23 19:36:12 +02:00
rhalberstadt 35e2287053 fix GitHub Actions secrets check via env variable 2026-08-23 19:36:12 +02:00
rhalberstadt d4da472725 add GitHub OAuth token, use --no-check-lock; remove gitea VCS entry 2026-08-23 19:36:12 +02:00
rhalberstadt 9239bf9eaa Standardize .gitignore and added missing license 2026-08-23 19:36:12 +02:00
rhalberstadt bf0d20caf9 Updated README and .gitignore 2026-08-23 19:36:12 +02:00
19 changed files with 139 additions and 41 deletions
+7 -1
View File
@@ -18,7 +18,7 @@ jobs:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Validate composer.json and composer.lock - name: Validate composer.json and composer.lock
run: composer validate --strict run: composer validate --strict --no-check-lock
- name: Cache Composer packages - name: Cache Composer packages
id: composer-cache id: composer-cache
@@ -29,6 +29,12 @@ jobs:
restore-keys: | restore-keys: |
${{ runner.os }}-php- ${{ runner.os }}-php-
- name: Configure GitHub OAuth for Composer
if: ${{ env.GH_COMPOSER_TOKEN != '' }}
env:
GH_COMPOSER_TOKEN: ${{ secrets.GH_COMPOSER_TOKEN }}
run: composer config --global github-oauth.github.com ${{ secrets.GH_COMPOSER_TOKEN }}
- name: Install dependencies - name: Install dependencies
run: composer install --prefer-dist --no-progress run: composer install --prefer-dist --no-progress
+35 -1
View File
@@ -1,4 +1,38 @@
/vendor/ /vendor/
/composer.lock
/.php-cs-fixer.cache /.php-cs-fixer.cache
/.phpunit.result.cache /.phpunit.result.cache
composer.lock
# ---> JetBrains
.idea/
cmake-build-*/
*.iws
out/
.idea_modules/
atlassian-ide-plugin.xml
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
# ---> VisualStudioCode
.vscode/
# ---> macOS
.DS_Store
.AppleDouble
.LSOverride
Icon
._*
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
+18
View File
@@ -0,0 +1,18 @@
MIT License
Copyright (c) 2026 René Halberstadt
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
without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the
following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial
portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
USE OR OTHER DEALINGS IN THE SOFTWARE.
+31 -10
View File
@@ -1,4 +1,9 @@
# tez/utils-enum # tez-utils-enum
[![CI](https://github.com/tezmanian/tez-utils-enum/actions/workflows/php.yml/badge.svg)](https://github.com/tezmanian/tez-utils-enum/actions/workflows/php.yml)
[![Packagist Version](https://img.shields.io/packagist/v/tezmanian/utils-enum)](https://packagist.org/packages/tezmanian/utils-enum)
[![PHP](https://img.shields.io/packagist/php-v/tezmanian/utils-enum)](https://packagist.org/packages/tezmanian/utils-enum)
[![License: MIT](https://img.shields.io/packagist/l/tezmanian/utils-enum)](LICENSE)
Composable PHP 8.3 traits that extend native enums with lookup, comparison, navigation, bitmask, label, and collection helpers. Composable PHP 8.3 traits that extend native enums with lookup, comparison, navigation, bitmask, label, and collection helpers.
@@ -7,9 +12,11 @@ Composable PHP 8.3 traits that extend native enums with lookup, comparison, navi
## Installation ## Installation
```bash ```bash
composer require tez/utils-enum composer require tezmanian/utils-enum
``` ```
Package: [`tezmanian/utils-enum`](https://packagist.org/packages/tezmanian/utils-enum) · Namespace: `Tezmanian\Utils\Enum`
Requires PHP ≥ 8.3. Requires PHP ≥ 8.3.
## Traits ## Traits
@@ -31,7 +38,7 @@ Requires PHP ≥ 8.3.
Base trait for pure (unit) enums. Use `BackedEnumTrait` instead when your enum has backing values. Base trait for pure (unit) enums. Use `BackedEnumTrait` instead when your enum has backing values.
```php ```php
use Tez\Utils\Enum\EnumTrait; use Tezmanian\Utils\Enum\EnumTrait;
enum Status enum Status
{ {
@@ -78,7 +85,7 @@ Status::toArray(); // ['Draft' => 'Draft', 'Published' => 'Published', 'Archived
Extends `EnumTrait` for string- or int-backed enums. Overrides `is()` to match by backing value, and `toArray()` to return `[value => name]`. Extends `EnumTrait` for string- or int-backed enums. Overrides `is()` to match by backing value, and `toArray()` to return `[value => name]`.
```php ```php
use Tez\Utils\Enum\BackedEnumTrait; use Tezmanian\Utils\Enum\BackedEnumTrait;
enum Color: string enum Color: string
{ {
@@ -124,7 +131,7 @@ Bitmask helpers for int-backed enums used as flag sets. Case values must be powe
Does not include `BackedEnumTrait` — combine them explicitly if needed. Does not include `BackedEnumTrait` — combine them explicitly if needed.
```php ```php
use Tez\Utils\Enum\BitFlagTrait; use Tezmanian\Utils\Enum\BitFlagTrait;
enum Permission: int enum Permission: int
{ {
@@ -168,7 +175,7 @@ Permission::fromBitmask(0); // []
Comparison helpers for int-backed enums, comparing cases by their backing values. Comparison helpers for int-backed enums, comparing cases by their backing values.
```php ```php
use Tez\Utils\Enum\ComparableTrait; use Tezmanian\Utils\Enum\ComparableTrait;
enum Priority: int enum Priority: int
{ {
@@ -205,7 +212,7 @@ Navigate to adjacent cases by definition order. Designed for state machines and
Order is determined by **definition order** (ordinal), not backing value. Returns `null` at boundaries — no wrap-around. Order is determined by **definition order** (ordinal), not backing value. Returns `null` at boundaries — no wrap-around.
```php ```php
use Tez\Utils\Enum\StepTrait; use Tezmanian\Utils\Enum\StepTrait;
enum CheckoutStep enum CheckoutStep
{ {
@@ -238,7 +245,7 @@ CheckoutStep::PersonalInfo->prev(); // null (first step)
Human-readable labels for enum cases, without any framework dependency. Override `labels()` to supply custom mappings keyed by case name. Falls back to the case name when no label is defined. Human-readable labels for enum cases, without any framework dependency. Override `labels()` to supply custom mappings keyed by case name. Falls back to the case name when no label is defined.
```php ```php
use Tez\Utils\Enum\TranslatableTrait; use Tezmanian\Utils\Enum\TranslatableTrait;
enum UserRole enum UserRole
{ {
@@ -280,7 +287,7 @@ UserRole::labelsArray();
Collection-style selection helpers. Can be combined with `EnumTrait` or `BackedEnumTrait`. Works with any enum type. Collection-style selection helpers. Can be combined with `EnumTrait` or `BackedEnumTrait`. Works with any enum type.
```php ```php
use Tez\Utils\Enum\EnumCollectionTrait; use Tezmanian\Utils\Enum\EnumCollectionTrait;
enum Suit enum Suit
{ {
@@ -354,6 +361,20 @@ enum Permission: int
> All traits use `@phpstan-require-implements` to enforce the correct enum type at static analysis time. > All traits use `@phpstan-require-implements` to enforce the correct enum type at static analysis time.
> Mixing `BitFlagTrait` or `ComparableTrait` with non-int-backed enums will surface as a PHPStan error. > Mixing `BitFlagTrait` or `ComparableTrait` with non-int-backed enums will surface as a PHPStan error.
## Requirements
- PHP 8.3+
- 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
+22 -3
View File
@@ -1,16 +1,35 @@
{ {
"name": "tez/utils-enum", "name": "tezmanian/utils-enum",
"type": "library", "type": "library",
"description": " A collection of PHP traits that supercharge native enums with comparison, bit-flag, stepping, collection, and translation helpers — zero dependencies, PHP 8.3+.", "description": " A collection of PHP traits that supercharge native enums with comparison, bit-flag, stepping, collection, and translation helpers — zero dependencies, PHP 8.3+.",
"keywords": [
"enum",
"traits",
"flags",
"bitflag",
"collection",
"php"
],
"homepage": "https://github.com/tezmanian/tez-utils-enum",
"license": "MIT", "license": "MIT",
"authors": [
{
"name": "René Halberstadt",
"email": "tezmanian@gmail.com"
}
],
"support": {
"issues": "https://github.com/tezmanian/tez-utils-enum/issues",
"source": "https://github.com/tezmanian/tez-utils-enum"
},
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"Tez\\Utils\\Enum\\": "src/" "Tezmanian\\Utils\\Enum\\": "src/"
} }
}, },
"autoload-dev": { "autoload-dev": {
"psr-4": { "psr-4": {
"Tez\\Utils\\Tests\\Enum\\": "tests/" "Tezmanian\\Utils\\Tests\\Enum\\": "tests/"
} }
}, },
"require": { "require": {
+1 -1
View File
@@ -2,7 +2,7 @@
declare(strict_types=1); declare(strict_types=1);
namespace Tez\Utils\Enum; namespace Tezmanian\Utils\Enum;
/** /**
* Extends EnumTrait for string- and int-backed enums. * Extends EnumTrait for string- and int-backed enums.
+1 -1
View File
@@ -2,7 +2,7 @@
declare(strict_types=1); declare(strict_types=1);
namespace Tez\Utils\Enum; namespace Tezmanian\Utils\Enum;
/** /**
* Bitmask helpers for int-backed enums used as flag sets. * Bitmask helpers for int-backed enums used as flag sets.
+1 -1
View File
@@ -2,7 +2,7 @@
declare(strict_types=1); declare(strict_types=1);
namespace Tez\Utils\Enum; namespace Tezmanian\Utils\Enum;
/** /**
* Comparison helpers for int-backed enums. * Comparison helpers for int-backed enums.
+1 -1
View File
@@ -2,7 +2,7 @@
declare(strict_types=1); declare(strict_types=1);
namespace Tez\Utils\Enum; namespace Tezmanian\Utils\Enum;
/** /**
* Add-on trait providing collection-style selection helpers for any enum. * Add-on trait providing collection-style selection helpers for any enum.
+1 -1
View File
@@ -2,7 +2,7 @@
declare(strict_types=1); declare(strict_types=1);
namespace Tez\Utils\Enum; namespace Tezmanian\Utils\Enum;
/** /**
* Base trait for pure (unit) enums. * Base trait for pure (unit) enums.
+1 -1
View File
@@ -2,7 +2,7 @@
declare(strict_types=1); declare(strict_types=1);
namespace Tez\Utils\Enum; namespace Tezmanian\Utils\Enum;
/** /**
* Navigation helpers for stepping to the adjacent case by definition order. * Navigation helpers for stepping to the adjacent case by definition order.
+1 -1
View File
@@ -2,7 +2,7 @@
declare(strict_types=1); declare(strict_types=1);
namespace Tez\Utils\Enum; namespace Tezmanian\Utils\Enum;
/** /**
* Provides human-readable labels for enum cases without any framework dependency. * Provides human-readable labels for enum cases without any framework dependency.
+2 -2
View File
@@ -2,10 +2,10 @@
declare(strict_types=1); declare(strict_types=1);
namespace Tez\Utils\Tests\Enum; namespace Tezmanian\Utils\Tests\Enum;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
use Tez\Utils\Enum\BackedEnumTrait; use Tezmanian\Utils\Enum\BackedEnumTrait;
// String-backed enum // String-backed enum
enum Color: string enum Color: string
+3 -3
View File
@@ -2,11 +2,11 @@
declare(strict_types=1); declare(strict_types=1);
namespace Tez\Utils\Tests\Enum; namespace Tezmanian\Utils\Tests\Enum;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
use Tez\Utils\Enum\BackedEnumTrait; use Tezmanian\Utils\Enum\BackedEnumTrait;
use Tez\Utils\Enum\BitFlagTrait; use Tezmanian\Utils\Enum\BitFlagTrait;
enum Permission: int enum Permission: int
{ {
+3 -3
View File
@@ -2,11 +2,11 @@
declare(strict_types=1); declare(strict_types=1);
namespace Tez\Utils\Tests\Enum; namespace Tezmanian\Utils\Tests\Enum;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
use Tez\Utils\Enum\BackedEnumTrait; use Tezmanian\Utils\Enum\BackedEnumTrait;
use Tez\Utils\Enum\ComparableTrait; use Tezmanian\Utils\Enum\ComparableTrait;
enum Level: int enum Level: int
{ {
+2 -2
View File
@@ -2,10 +2,10 @@
declare(strict_types=1); declare(strict_types=1);
namespace Tez\Utils\Tests\Enum; namespace Tezmanian\Utils\Tests\Enum;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
use Tez\Utils\Enum\EnumCollectionTrait; use Tezmanian\Utils\Enum\EnumCollectionTrait;
enum Suit: string enum Suit: string
{ {
+3 -3
View File
@@ -2,11 +2,11 @@
declare(strict_types=1); declare(strict_types=1);
namespace Tez\Utils\Tests\Enum; namespace Tezmanian\Utils\Tests\Enum;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
use Tez\Utils\Enum\BackedEnumTrait; use Tezmanian\Utils\Enum\BackedEnumTrait;
use Tez\Utils\Enum\EnumTrait; use Tezmanian\Utils\Enum\EnumTrait;
// Pure (unit) enum used across all EnumTrait tests // Pure (unit) enum used across all EnumTrait tests
enum Season enum Season
+3 -3
View File
@@ -2,11 +2,11 @@
declare(strict_types=1); declare(strict_types=1);
namespace Tez\Utils\Tests\Enum; namespace Tezmanian\Utils\Tests\Enum;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
use Tez\Utils\Enum\EnumTrait; use Tezmanian\Utils\Enum\EnumTrait;
use Tez\Utils\Enum\StepTrait; use Tezmanian\Utils\Enum\StepTrait;
enum OrderStatus enum OrderStatus
{ {
+3 -3
View File
@@ -2,11 +2,11 @@
declare(strict_types=1); declare(strict_types=1);
namespace Tez\Utils\Tests\Enum; namespace Tezmanian\Utils\Tests\Enum;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
use Tez\Utils\Enum\BackedEnumTrait; use Tezmanian\Utils\Enum\BackedEnumTrait;
use Tez\Utils\Enum\TranslatableTrait; use Tezmanian\Utils\Enum\TranslatableTrait;
enum StatusWithLabels: string enum StatusWithLabels: string
{ {