wiz-develop/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: 2 378

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Open Issues: 4

pkg:composer/wiz-develop/php-value-object

v0.7.7 2025-10-15 09:12 UTC

README

Packagist Version PHP Version PHPStan Documentation License

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

インストール

composer require wiz-develop/php-value-object

使用例

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

use WizDevelop\PhpValueObject\String\StringValue;
use WizDevelop\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 WizDevelop\PhpMonad\Result;

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

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

ドキュメント

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

要件

  • PHP 8.4 以上

ライセンス

MIT License