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
Requires
- php: >=8.4
- endou-mame/php-monad: ^1.0
Requires (Dev)
- endou-mame/php-cs-fixer-config: ~8.4.4
- phpstan/extension-installer: ^1.4
- phpstan/phpstan: ^2.1
- phpstan/phpstan-strict-rules: ^2.0
- phpunit/php-code-coverage: ^11.0
- phpunit/phpunit: ^11.3
README
不変性、型安全性、自己検証を持つドメイン値オブジェクトを提供する 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