PHPackages                             blackcube/dcore - 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. [Localization &amp; i18n](/categories/localization)
4. /
5. blackcube/dcore

ActiveLibrary[Localization &amp; i18n](/categories/localization)

blackcube/dcore
===============

CMS core data layer

1.0.0(1mo ago)049↓83.3%4BSD-3-ClausePHPPHP ^8.1

Since May 23Pushed 1mo agoCompare

[ Source](https://github.com/blackcubeio/dcore)[ Packagist](https://packagist.org/packages/blackcube/dcore)[ Docs](https://github.com/blackcubeio/dcore)[ RSS](/packages/blackcube-dcore/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (25)Versions (3)Used By (4)

Blackcube dcore
===============

[](#blackcube-dcore)

[![License](https://camo.githubusercontent.com/6cb285b57819f8de0acfb34923298f4f569f962544e8fe35331da2d163f4e485/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4253442d2d332d2d436c617573652d626c75652e737667)](LICENSE.md)[![Packagist Version](https://camo.githubusercontent.com/d2c4a1e22cf05fd13e5aeb5802f8610fac0586b57f69b87d48a403e0979cec43/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f626c61636b637562652f64636f72652e737667)](https://packagist.org/packages/blackcube/dcore)

dcore is the data layer of Blackcube CMS — models, trees, dynamic properties, SEO, translations. **JSON Schema + virtual columns, no EAV.** Your data stays yours: your own tables, your server, your backups.

It is consumed by two packages on top:

- **[blackcube/dboard](https://github.com/blackcubeio/dboard)** — admin backoffice (content editing, CRUD)
- **[blackcube/ssr](https://github.com/blackcubeio/ssr)** — public front (routing, SEO, handlers)

You do not consume dcore directly. Pick dboard for admin, ssr for front, or both.

Where dcore sits
----------------

[](#where-dcore-sits)

```
┌────────────────────────┐    ┌────────────────────────┐
│ dboard                 │    │ ssr                    │
│ admin backoffice       │    │ public front           │
│ (editing, CRUD)        │    │ (routing, SEO, handlers)│
└──────────┬─────────────┘    └───────────┬────────────┘
           │                              │
           └──────────────┬───────────────┘
                          ↓
                    ┌──────────┐
                    │  dcore   │  ← data layer
                    └──────────┘
                          ↓
                         DB

```

Requirements
------------

[](#requirements)

- Relational DB with JSON support

Installation
------------

[](#installation)

```
composer require blackcube/dcore
```

Getting started
---------------

[](#getting-started)

dcore is not used alone. Start with a demo app:

FrameworkDemo repoYii3[blackcube/yii-app](https://github.com/blackcubeio/yii-app)Slim[blackcube/slim-app](https://github.com/blackcubeio/slim-app)Laravel[blackcube/laravel-app](https://github.com/blackcubeio/laravel-app)Each demo shows how to wire ssr into its framework, how to write handlers with `#[RoutingHandler]`, and how to consume dcore data.

Why dcore?
----------

[](#why-dcore)

ApproachProblemFull-stack CMSMonolith. You want a page? Take the whole engine.Headless CMS (SaaS)Vendor lock-in. Your data lives elsewhere.Raw DB access15 models, 8 pivots, tree management, JSON schema validation — from scratch?**dcore**None of the above**Trees without recursion.** Content, Tag and Menu are tree-structured via [Hazeltree](https://github.com/blackcubeio/hazeltree) — one query, no cache.

**Dynamic properties without EAV.** JSON Schema validation, virtual columns, transparent queries via [Elastic](https://github.com/blackcubeio/elastic).

**SEO is built in.** Per-URL metadata (Xeo), global config (GlobalXeo), sitemap.xml, robots.txt — not bolted on after.

**Multilingual by design.** Translation groups link Contents across languages. Not an afterthought.

Capabilities per model
----------------------

[](#capabilities-per-model)

ModelTreeDynamic propertiesBlocsTagsAuthors`Content`yesyesyesyesyes`Tag`yesyesyesnoyes`Bloc`noyesnonono`Menu`yesnononono`GlobalXeo`noyesnononoModels vs Entities
------------------

[](#models-vs-entities)

dcore provides two namespaces for each model:

NamespaceDefault scopeUse case`Blackcube\Dcore\Models\Content`noneAdmin, backoffice`Blackcube\Dcore\Entities\Content``->publishable()`Frontend, public renderingEntities extend Models and override `query()` to automatically filter by publishable status (active + dates + ancestors). Use Models when you need full access, Entities when you render for visitors.

Architecture
------------

[](#architecture)

### Models

[](#models)

ModelTableDescription`Content``contents`Editorial content. Tree-structured, typed, multilingual.`Tag``tags`Taxonomy. Tree-structured, typed.`Bloc``blocs`Reusable content brick. Carries dynamic properties.`Menu``menus`Navigation item. Tree-structured, linked to host and language.`Slug``slugs`URL (host + path). Can be a redirect.`Host``hosts`Domain. `id=1` = wildcard.`Type``types`Content/tag type. Carries SSR handler and allowed schemas.`Language``languages`Available language. String PK.`ElasticSchema``elasticSchemas`JSON Schema for dynamic properties.`Author``authors`Author (schema.org Person).`Xeo``xeos`Per-URL SEO metadata.`GlobalXeo``globalXeos`Global SEO per host + kind.`Sitemap``sitemaps`Per-URL sitemap configuration.`Parameter``parameters`Key-value parameters per domain.`TranslationGroup``translationGroups`Translation group linking Contents.### Services

[](#services)

ServiceRole`HandlerDescriptor`Path → SSR handler resolution. CMS routing entry point.`PreviewManager`Reads preview state (active flag + date simulation) from session.`HazeltreeSlugGenerator`Automatic slug generation based on tree position.Documentation
-------------

[](#documentation)

Detailed documentation:

- [API overview](docs/index.md)

License
-------

[](#license)

BSD-3-Clause. See [LICENSE.md](LICENSE.md).

Author
------

[](#author)

Philippe Gaultier

###  Health Score

41

—

FairBetter than 87% of packages

Maintenance92

Actively maintained with recent releases

Popularity12

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

40d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/545714?v=4)[pgaultier](/maintainers/pgaultier)[@pgaultier](https://github.com/pgaultier)

---

Top Contributors

[![pgaultier](https://avatars.githubusercontent.com/u/545714?v=4)](https://github.com/pgaultier "pgaultier (2 commits)")

---

Tags

cmslaravelslimyii3json-schemamultilingualtreecmsheadlessactive-recordseocontent management

###  Code Quality

TestsCodeception

### Embed Badge

![Health badge](/badges/blackcube-dcore/health.svg)

```
[![Health](https://phpackages.com/badges/blackcube-dcore/health.svg)](https://phpackages.com/packages/blackcube-dcore)
```

###  Alternatives

[symfony/symfony

The Symfony PHP framework

31.4k87.2M2.2k](/packages/symfony-symfony)[aws/aws-sdk-php

AWS SDK for PHP - Use Amazon Web Services in your PHP project

6.3k543.5M2.6k](/packages/aws-aws-sdk-php)[cakephp/cakephp

The CakePHP framework

8.9k19.5M1.8k](/packages/cakephp-cakephp)[typo3/cms

TYPO3 CMS is a free open source Content Management Framework initially created by Kasper Skaarhoj and licensed under GNU/GPL.

1.2k1.9M122](/packages/typo3-cms)[bref/bref

Bref is a framework to write and deploy serverless PHP applications on AWS Lambda.

3.4k10.6M67](/packages/bref-bref)[neuron-core/neuron-ai

The PHP Agentic Framework.

2.0k656.1k38](/packages/neuron-core-neuron-ai)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
