Maksoft.net

Кодът на Maksoft CMS е разположение на 

https://github.com/maksoftnet/ms

Документацията е разделена така, че един стабилен договор (контракт) да описва как изглеждат данните навън, а отделен mapping слой да описва как те се извличат и трансформират от базата данни.
Контрактът (/docs/contracts) се пипа рядко и служи за теми, API и AI, докато мапингът (/lib/mapping + /docs/mapping) е еволюционен и поема всички бъдещи промени в модела и схемата.
Така CMS-ът може да се развива вътрешно, без да е обвързан с темплейти, интеграции и външни потребители на данните.

/
├─ README.md

├─ /docs
│ ├─ /contracts
│ │ ├─ output-contract.v1.md
│ │ ├─ output-contract.v1.schema.json
│ │ └─ CHANGELOG.md
│ │
│ ├─ /mapping
│ │ ├─ site.md
│ │ ├─ page.md
│ │ ├─ catalog.md
│ │ ├─ commerce.md
│ │ └─ docs.md
│ │
│ ├─ /architecture
│ │ ├─ data-model.md
│ │ └─ data-flow.md
│ │
│ └─ /guides
│ ├─ theme-development.md
│ └─ extending-contract.md

├─ /lib
│ ├─ /data
│ │ └─ PageData.php ← orchestration (събира всичко)
│ │
│ ├─ /mapping
│ │ ├─ /v1
│ │ │ ├─ SiteMapper.php
│ │ │ ├─ PageMapper.php
│ │ │ ├─ CatalogMapper.php
│ │ │ ├─ CommerceMapper.php
│ │ │ └─ DocsMapper.php
│ │ │
│ │ └─ MapperInterface.php
│ │
│ ├─ /repositories
│ │ ├─ PageRepository.php
│ │ ├─ ProductRepository.php
│ │ ├─ PriceRepository.php
│ │ └─ DocumentRepository.php
│ │
│ └─ /services
│ ├─ OutputContextService.php
│ └─ PricingResolver.php

├─ /themes
│ ├─ /_docs
│ │ └─ data-contract.md
│ │
│ ├─ /default
│ │ ├─ templates/
│ │ ├─ assets/
│ │ └─ theme.json
│ │
│ └─ /custom-theme
│ └─ ...

├─ /api
│ ├─ /v1
│ │ └─ output.php ← JSON output по контракта
│ │
│ └─ /sync
│ └─ mongo-export.php ← нерелационен exchange layer

└─ /tests
├─ /contracts
│ └─ output-contract-v1.test.php
└─ /mapping
└─ PageMapperTest.php


Начало /  /  / Документация / Документация и файлова структура
Maksoft.Bg Maksoft.Net BrandIT