How totalcms/cms works
Total CMS is a PHP flat-file CMS: users manage structured content in an admin or through REST/CLI, content is persisted as JSON/files on disk, then queried and rendered through Twig or exposed to integrations. The graph preserves major README capabilities, but some subsystem connections are documented rather than confirmed in sampled implementation; those branches are shown only at that level.
Main entry points: StorageFilesystemAdapter.php Flat-file storage · routes.php Route map · IndexQueryService.php Query services · TwigEngine.php Twig rendering
Components 25
Entry points
- HTTP application
public/index.php - Route map
config/routes.php - Admin interface
javascript/admin.js - CMS CLI
src/CLI/CliApplication.php
Content management
- Admin actions
src/Action/Admin - Content API actions
src/Action/Object - Schema actions
src/Action/Schema - Query services
src/Domain/Index/Service/IndexQueryService.php - Query pipeline
src/Domain/Query/Service/QueryPipeline.php - DataView queries
src/Domain/DataView/Service/DataViewQueryService.php
Site delivery
- Site Builder
src/Domain/Builder/Service/BuilderPreviewService.php - Twig rendering
src/Domain/Twig/Service/TwigEngine.php
Platform services
- Flat-file storage
src/Domain/Storage/StorageFilesystemAdapter.php - Cache manager
src/Domain/Cache/CacheManager.php - Automations and jobs
src/Action/Automation/AutomationRunNowAction.php - Image processing
src/Action/ImageWorks
Extensions and integrations
- Extension lifecycle
src/Domain/Extension/Service/ExtensionManager.php - Extension storage
src/Domain/Extension/ExtensionStorage.php - MCP server
src/Action/Mcp/McpEndpointAction.php - OAuth services
src/Action/OAuth/OAuthTokenAction.php
Other components
- Admin user
- API client
- Site visitor
- CLI operator
- External services
Connections 36
- Admin user → HTTP application: manages content
- API client → HTTP application: sends requests
- Site visitor → HTTP application: requests pages
- HTTP application → Route map: dispatches routes
- Route map → Admin actions: routes admin
- Route map → Content API actions: routes API
- Route map → Schema actions: routes schemas
- Route map → MCP server: routes MCP
- Route map → OAuth services: routes OAuth
- Admin actions → Flat-file storage: reads and writes
- Content API actions → Flat-file storage: reads and writes
- Schema actions → Flat-file storage: reads and writes
- Content API actions → Query services: queries objects
- Query services → Flat-file storage: loads index data
- Query services → Query pipeline: executes query
- Query pipeline → Cache manager: gets and stores
- DataView queries → Query pipeline: executes query
- DataView queries → Flat-file storage: loads view data
- Admin actions → Admin interface: serves interface
- Admin user → Admin interface: uses
- Admin actions → Site Builder: previews pages
- Site Builder → Twig rendering: renders preview
- Site visitor → Twig rendering: receives rendered pages
- Twig rendering → Flat-file storage: loads templates
- Twig rendering → Query services: reads content
- CLI operator → CMS CLI: runs commands
- CMS CLI → Flat-file storage: manages content files
- CMS CLI → Query services: queries collections
- Automations and jobs → Flat-file storage: persists job state
- Route map → Automations and jobs: routes automation
- Extension lifecycle → Extension storage: provides persistence
- Extension lifecycle → Twig rendering: registers template paths
- MCP server → Query services: exposes collection search
- OAuth services → API client: issues access tokens
- Image processing → Flat-file storage: reads and writes media
- Extension lifecycle → External services: optional integrations