XOOPS 4.0 Roadmap
Overview
Section titled “Overview”XOOPS 4.0 represents a fundamental modernization of the XOOPS Content Management System, bringing it into alignment with contemporary PHP practices while maintaining backward compatibility with the extensive ecosystem of existing modules.
Vision Statement
Section titled “Vision Statement”Transform XOOPS from a legacy CMS into a modern, PSR-compliant platform that developers love to work with, while protecting the investment of existing site owners and module developers.
Key Objectives
Section titled “Key Objectives”mindmap root((XOOPS 4.0)) Modern PHP PHP 8.4+ Strict Typing Composer PSR-4 Namespaces Architecture PSR-15 Middleware PSR-11 DI Container PSR-7 HTTP Messages JSON Manifests Developer Experience CLI Tools IDE Support Documentation Static Analysis Backward Compatibility Hybrid Mode Migration Path Compatibility Shims1. Modern PHP Standards
Section titled “1. Modern PHP Standards”- Target PHP 8.4+ with strict typing and modern language features
- Full adoption of PSR standards for interoperability
- Composer-based dependency management
- Namespace-based architecture following PSR-4
2. Architectural Modernization
Section titled “2. Architectural Modernization”- PSR-15 Middleware Pipeline for request handling
- PSR-11 Dependency Injection Container for service management
- PSR-7 HTTP Messages for standardized request/response handling
- JSON-based module manifests replacing
xoops_version.php
3. Developer Experience
Section titled “3. Developer Experience”- Modern CLI tooling with
bin/xoopscommands - IDE-friendly code with full type hints
- Comprehensive documentation and migration guides
- Static analysis support (PHPStan Level 5+)
4. Backward Compatibility
Section titled “4. Backward Compatibility”- Hybrid mode supporting both legacy and modern modules
- Gradual migration path for existing modules
- Compatibility shims for legacy APIs
Documentation Structure
Section titled “Documentation Structure”This section contains comprehensive documentation for XOOPS 4.0:
Roadmap
Section titled “Roadmap”- Core Specification - The complete technical specification
- Architecture Vision - PSR-15 middleware and system design
PSR Standards
Section titled “PSR Standards”- PSR Standards Overview - All PSR standards being adopted
- PSR-4 Autoloading - Class autoloading implementation
- PSR-7 HTTP Messages - HTTP message interfaces
- PSR-11 Container - Dependency injection container
- PSR-15 Middleware - HTTP middleware pipeline
Modernization
Section titled “Modernization”- Smarty 4 Migration - Template engine upgrade
- PHP 8 Compatibility - PHP 8.x improvements
Migration
Section titled “Migration”- From 2.5 to 4.0 - Complete migration guide
Implementation Phases
Section titled “Implementation Phases”gantt title XOOPS 4.0 Implementation Timeline dateFormat YYYY-MM-DD section Phase 1 Foundation :p1, 2026-01-01, 4w Composer Setup :2026-01-01, 1w Manifest System :2026-01-08, 2w CLI Entry Point :2026-01-22, 1w section Phase 2 Core Runtime :p2, after p1, 4w Middleware Pipeline :2026-01-29, 2w Router Integration :2026-02-12, 1w View Renderer :2026-02-19, 1w section Phase 3 Services :p3, after p2, 4w Cache System :2026-02-26, 2w Search Engine :2026-03-12, 1w Entity Registry :2026-03-19, 1w section Phase 4 Release Prep :p4, after p3, 4w Legacy Adapter :2026-03-26, 2w Reference Module :2026-04-09, 1w Documentation :2026-04-16, 1wPhase 1: Foundation (Weeks 1-4)
Section titled “Phase 1: Foundation (Weeks 1-4)”Goal: A working CLI that can verify a manifest
- Set up
composer.jsonwith core dependencies - Implement
ManifestMergerandManifestCompiler - Build
bin/xoopsentry point - Implement
module:scaffoldandlint:manifestcommands
Phase 2: Core Runtime (Weeks 5-8)
Section titled “Phase 2: Core Runtime (Weeks 5-8)”Goal: A “Hello World” HTTP request serving a template
- Implement PSR-15 Middleware pipeline
- Create
RouteMatchInterfacebridge to FastRoute - Build
ViewRendererInterfacewith Smarty/Twig adapters - Implement
ConnectionFactoryandSafeUnsafetrait
Phase 3: Services and Integration (Weeks 9-12)
Section titled “Phase 3: Services and Integration (Weeks 9-12)”Goal: Complex modules interacting with each other
- Implement
VersionedCachewith null safety - Build
FederatedSearchEnginewith bounded overfetch - Create
TranslationCompilerwith collision detection - Develop
EntityAliasRegistry
Phase 4: Release Readiness (Weeks 13-16)
Section titled “Phase 4: Release Readiness (Weeks 13-16)”Goal: Beta Release
- Complete
module:convertlegacy adapter - Implement
bin/xoops doctorchecks - Build reference “Vision 2026” module
- Publish documentation
CLI Commands
Section titled “CLI Commands”| Command | Purpose |
|---|---|
bin/xoops module:scaffold <slug> | Create a new module structure |
bin/xoops manifest:compile | Validate and compile manifests |
bin/xoops lint:translations <slug> | Check for broken JSON or duplicate keys |
bin/xoops cache:warmup | Prepare site for production deployment |
bin/xoops doctor | Check server health and configuration |
bin/xoops module:convert <slug> | Convert legacy module to modern format |
Directory Structure
Section titled “Directory Structure”modules/my_module/├── module.json # The Manifest (Entry Point)├── src/ # PSR-4 Code│ ├── Controller/ # Action Handlers│ ├── Entity/ # Database Models│ ├── Service/ # Business Logic├── config/ # Optional split configs├── templates/ # Templates├── language/ # Translations│ └── en/│ ├── main.json # @main.key├── assets/ # CSS/JS/Images└── migrations/ # Database Schema ChangesEnvironment Variables
Section titled “Environment Variables”| Variable | Purpose | Values |
|---|---|---|
XOOPS_DEBUG | Development mode | true/false |
XOOPS_MANIFEST_VALIDATION | Schema validation level | strict/warn/none |
XOOPS_CACHE_STRATEGY | Manifest invalidation strategy | hash/mtime |
XOOPS_SECURITY_LEVEL | Security enforcement level | strict/normal |
Governance
Section titled “Governance”Amendment Policy
Section titled “Amendment Policy”- Freeze Period (90 Days): Only errata corrections allowed
- Post-Freeze: Semantic changes require XEP (XOOPS Enhancement Proposal)
Conformance Requirements
Section titled “Conformance Requirements”The reference implementation must include tests demonstrating:
- List path clear (
assets.css: []) - Object path no-op (
config: {}) - Invalid type schema error (strict mode)
isPageAccuratefalse scenarios- Cached null round-trip
Related Resources
Section titled “Related Resources”- Architecture Overview
- Module Development Guide
- Database Documentation
Quick Links
Section titled “Quick Links”#xoops-4.0 #roadmap #modernization #psr-standards #architecture