creating-value-object · git:20260922.00e7bbe · 2026-09-22 · sha256 81f0473d0aa306b6

creating-value-object git:20260922.00e7bbeA

Immutable. This exact content never changes and is served at /api/v1/blob/81f0473d0aa306b6.

---
name: creating-value-object
description: Create a Domain Value Object for a meaningful immutable business concept.
---

# Creating a Value Object

Create a Value Object only when a value has meaningful domain behavior, validation, or semantics.

Place it under:

App\Domain\<Capability>\ValueObjects

Use the domain concept as its name.

Prefer:

Money
EmailAddress
OrderNumber

Avoid:

MoneyValueObject
EmailValueObject

Value Objects should normally be immutable and final.

Validate invariants at construction.

Do not create Value Objects merely to wrap every scalar value.