Files
cmsPRO/.paul/codebase/stack.md
Jacek Pyziak bf4b7c6429 docs(codebase): mapa kodu wygenerowana przez /paul:map-codebase
7 dokumentów w .paul/codebase/ — overview, stack, architecture,
conventions, testing, integrations, concerns (CRITICAL→LOW).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 00:46:01 +02:00

3.2 KiB

Technology Stack

Generated: 2026-04-26

PHP Runtime

  • Required: PHP 7.4+ (nikic/php-parser constraint), PHP 7.1+ / 8.0+ (deep-copy)
  • Composer: composer.json at project root
  • Dev dependency: phpunit/phpunit: ^10.5
  • No runtime Composer packages — all libraries are vendored manually in libraries/

Database

Item Value
Engine MySQL
Config config.php (plain-text credentials)
Abstraction Medoo 1.7.3 (libraries/medoo/medoo.php)
Table prefix pp_
Remote host host117523.hostido.net.pl (hostido.net.pl hosting)

Key tables: pp_articles, pp_articles_langs, pp_pages, pp_layouts, pp_users, pp_users_privileges, pp_newsletter, pp_newsletter_templates, pp_banners, pp_scontainers, pp_authors, pp_languages, pp_settings, pp_tags, pp_update_versions, pp_update_licenses

Frontend Libraries (all vendored in libraries/)

Library Version Purpose
jQuery 2.1.3 JavaScript DOM
Bootstrap 4.1.3 CSS/JS framework
Font Awesome 4.7.0 Icons
jQuery UI UI widgets
CKEditor WYSIWYG editor
Leaflet Maps (in CKEditor plugin)
Plupload 3.1.2 File upload
jQuery Confirm Confirmation dialogs
FancyBox Lightbox/modal
CodeMirror Code editor
Lozad.js Lazy loading
MotionCAPTCHA CAPTCHA
FileManager 9.14.1 File browse/upload UI

No build tools — no webpack, vite, or gulp. Raw JS/CSS files.

Custom JS: libraries/functions.js, libraries/functions-front.js, libraries/jquery/javascript.js

PHP Libraries (vendored)

Library Location Purpose
PHPMailer libraries/phpmailer/ SMTP email (class.phpmailer.php, class.smtp.php)
Medoo libraries/medoo/medoo.php Database abstraction
MySQLDump libraries/MySQLDump.php SQL dump utility
Savant3 autoload/Savant3.php Template engine
Mobile_Detect autoload/class.Mobile_Detect.php 2.8.16, device detection
geoPlugin autoload/class.geoplugin.php IP geolocation

Server

  • Apache with mod_rewrite, mod_deflate, mod_expires
  • Config: .htaccess — HTTPS redirect, www enforcement, trailing slash, gzip, 1-year browser cache
  • Optional admin IP whitelist: admin/ip.conf
  • Session: PHP native sessions with IP validation and regeneration
  • Cache: File-based in cache/ and temp/ directories

External Services

Service Purpose Integration
SMTP (configurable) Email delivery PHPMailer, settings in pp_settings
geoPlugin (geoplugin.net) IP geolocation class.geoplugin.php
cmspro.project-dc.pl Update downloads autoload/admin/factory/class.Update.php line 12, 25
Analytics (configurable) Stats injection pp_settings.statistic_code → injected in <head>

Autoloading

Hybrid custom autoloader at autoload/autoloader.php:

  1. Tries autoload/{namespace}/class.{ClassName}.php (legacy)
  2. Falls back to autoload/{namespace}/{ClassName}.php (PSR-4)

Composer PSR-4 mappings: Domain\autoload/Domain/, Shared\autoload/Shared/