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>
3.2 KiB
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.jsonat 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/andtemp/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:
- Tries
autoload/{namespace}/class.{ClassName}.php(legacy) - Falls back to
autoload/{namespace}/{ClassName}.php(PSR-4)
Composer PSR-4 mappings: Domain\ → autoload/Domain/, Shared\ → autoload/Shared/