PHPackages                             clutch-property-mgmt/content-domain - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. clutch-property-mgmt/content-domain

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

clutch-property-mgmt/content-domain
===================================

Shared CMS domain models for PHP SSR apps. Provides pure, framework-agnostic entities (Page, PageSection, Review, SeoMeta, Navigation, etc.) with attribute-based validation via \[phpolar/model\]. Designed for Clean Architecture: no infrastructure, no PDO—just content-focused domain objects.

1.3.2(1mo ago)0138proprietaryPHP

Since Feb 19Pushed 2mo agoCompare

[ Source](https://github.com/clutch-property-mgmt/content-domain)[ Packagist](https://packagist.org/packages/clutch-property-mgmt/content-domain)[ RSS](/packages/clutch-property-mgmt-content-domain/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (4)Versions (8)Used By (0)

content-domain
==============

[](#content-domain)

Shared CMS domain models for PHP SSR apps. Provides pure, framework-agnostic entities (Page, PageSection, Review, SeoMeta, Navigation, etc.) with attribute-based validation via \[phpolar/model\]. Designed for Clean Architecture: no infrastructure, no PDO—just content-focused domain objects.

---

Table of Contents
-----------------

[](#table-of-contents)

- [Goals](#goals)
- [What’s Included](#whats-included)
- [What’s *Not* Included](#whats-not-included)
- [Install](#install)
- [Usage](#usage)
    - [Entities](#entities)
    - [Validation with phpolar/model](#validation-with-phpolarmodel)
    - [Immutability / Value semantics](#immutability--value-semantics)
- [Directory &amp; Namespaces](#directory--namespaces)
- [Versioning](#versioning)
- [Contributing](#contributing)
- [License](#license)

Goals
-----

[](#goals)

- **Pure domain** for CMS/content concerns
- **Reusable** across `storefront` (read-only) and `storefront-admin` (read-write)
- **Stable contracts** with small, composable objects
- **Validation via attributes** using `phpolar/model`
- **Zero infrastructure**: no PDO, no frameworks, no I/O side effects

What’s Included
---------------

[](#whats-included)

- Core CMS entities and value objects:
    - `Page`, `PageSection`, `Block`, `SeoMeta`, `Slug`, `Navigation`, `MenuItem`, `Review` (example set)
- Attribute-based rules for validation/normalization
- Minimal helpers for content-domain business rules (publishability, visibility windows, etc.) that **do not** perform I/O

What’s *Not* Included
---------------------

[](#whats-not-included)

- No repositories, PDO, or persistence code
- No controllers or framework glue
- No caching, logging, HTTP, or config loading

> Keep infrastructure in the application layer (e.g., `storefront`, `storefront-admin`). This package should remain framework- and storage-agnostic.

Install
-------

[](#install)

```
composer require clutch-property-mgmt/content-domain
```

> Requires PHP 8.2+ and [`phpolar/model`](https://github.com/phpolar/model).

Usage
-----

[](#usage)

### Entities

[](#entities)

```
