Architecture Overview

Pubvana CMS is a self-hosted blogging and content platform built on CodeIgniter 4.7 with Shield 1.3 for authentication. It follows strict MVC conventions and is designed to be extended through three first-class extension mechanisms: Plugins, Themes, and Widgets.

This section documents the core architecture so that developers understand the foundation before building extensions.

Foundation

  • Framework: CodeIgniter 4.7 (Composer-managed)
  • Auth: Shield 1.3 — handles users, groups, tokens, session-based login, and 2FA
  • PHP: 8.1+
  • Database: MySQL 5.7+ / MariaDB 10.3+
  • Template engine: Custom .tpl engine (Pubvana-specific, not Twig or Blade)

Extension Points

TypeLocationLanguagePurpose
Pluginplugins/{PluginName}/PHP + .tplFull MVC packages — routes, controllers, models, admin UI
Themethemes/{folder}/.tpl + CSS/JSVisual presentation layer — no PHP
Widgetwidgets/{folder}/.tpl + JSONData-driven sidebar/content blocks

Each extension type is self-contained in its own directory, auto-discovered by the system, and managed through the admin UI.

Key Subsections

  • CodeIgniter 4 Foundation — CI4 concepts Pubvana relies on
  • Request Lifecycle — step-by-step from HTTP request to rendered response
  • Directory Structure — full annotated project tree
  • Extension Points — detailed breakdown of plugin, theme, and widget systems