endou-mame/php-value-object

📦 The PHP Value Object library offers immutable, type-safe, and self-validating objects to model domain values using the Value Object pattern.

Installs: 0

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

pkg:composer/endou-mame/php-value-object

v0.5.0 2026-02-16 14:30 UTC

This package is auto-updated.

Last update: 2026-02-16 14:35:43 UTC


README

Packagist Version PHP Version PHPStan Documentation License

不変性、型安全性、自己検証を持つドメイン値オブジェクトを提供する PHP ライブラリです。

インストール

composer require endou-mame/php-value-object

使用例

カスタム値オブジェクトの作成

use EndouMame\PhpValueObject\String\StringValue;
use EndouMame\PhpValueObject\ValueObjectMeta;

#[ValueObjectMeta(name: '商品コード')]
final readonly class ProductCode extends StringValue
{
    protected static function minLength(): int { return 5; }
    protected static function maxLength(): int { return 5; }
    protected static function regex(): string { return '/^P[0-9]{4}$/'; }
}

$code = ProductCode::from('P1234');

Result 型によるエラーハンドリング

use EndouMame\PhpMonad\Result;

$result = ProductCode::tryFrom('invalid');

$code = $result
    ->map(fn($code) => $code->value())
    ->unwrapOr('デフォルト');

ドキュメント

詳細なガイドと API リファレンスは ドキュメントサイト を参照してください。

要件

  • PHP 8.4 以上

ライセンス

MIT License