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>
This commit is contained in:
80
.paul/codebase/stack.md
Normal file
80
.paul/codebase/stack.md
Normal file
@@ -0,0 +1,80 @@
|
||||
# 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/`
|
||||
Reference in New Issue
Block a user