Skip to content

XOOPS 4.0 Roadmap

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.

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.

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 Shims
  • 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
  • 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
  • Modern CLI tooling with bin/xoops commands
  • IDE-friendly code with full type hints
  • Comprehensive documentation and migration guides
  • Static analysis support (PHPStan Level 5+)
  • Hybrid mode supporting both legacy and modern modules
  • Gradual migration path for existing modules
  • Compatibility shims for legacy APIs

This section contains comprehensive documentation for XOOPS 4.0:

  • Core Specification - The complete technical specification
  • Architecture Vision - PSR-15 middleware and system design
  • 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
  • Smarty 4 Migration - Template engine upgrade
  • PHP 8 Compatibility - PHP 8.x improvements
  • From 2.5 to 4.0 - Complete migration guide
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, 1w

Goal: A working CLI that can verify a manifest

  • Set up composer.json with core dependencies
  • Implement ManifestMerger and ManifestCompiler
  • Build bin/xoops entry point
  • Implement module:scaffold and lint:manifest commands

Goal: A “Hello World” HTTP request serving a template

  • Implement PSR-15 Middleware pipeline
  • Create RouteMatchInterface bridge to FastRoute
  • Build ViewRendererInterface with Smarty/Twig adapters
  • Implement ConnectionFactory and SafeUnsafe trait

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 VersionedCache with null safety
  • Build FederatedSearchEngine with bounded overfetch
  • Create TranslationCompiler with collision detection
  • Develop EntityAliasRegistry

Goal: Beta Release

  • Complete module:convert legacy adapter
  • Implement bin/xoops doctor checks
  • Build reference “Vision 2026” module
  • Publish documentation
CommandPurpose
bin/xoops module:scaffold <slug>Create a new module structure
bin/xoops manifest:compileValidate and compile manifests
bin/xoops lint:translations <slug>Check for broken JSON or duplicate keys
bin/xoops cache:warmupPrepare site for production deployment
bin/xoops doctorCheck server health and configuration
bin/xoops module:convert <slug>Convert legacy module to modern format
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 Changes
VariablePurposeValues
XOOPS_DEBUGDevelopment modetrue/false
XOOPS_MANIFEST_VALIDATIONSchema validation levelstrict/warn/none
XOOPS_CACHE_STRATEGYManifest invalidation strategyhash/mtime
XOOPS_SECURITY_LEVELSecurity enforcement levelstrict/normal
  • Freeze Period (90 Days): Only errata corrections allowed
  • Post-Freeze: Semantic changes require XEP (XOOPS Enhancement Proposal)

The reference implementation must include tests demonstrating:

  • List path clear (assets.css: [])
  • Object path no-op (config: {})
  • Invalid type schema error (strict mode)
  • isPageAccurate false scenarios
  • Cached null round-trip
  • Architecture Overview
  • Module Development Guide
  • Database Documentation

#xoops-4.0 #roadmap #modernization #psr-standards #architecture