Files
orderPRO/.paul/codebase/STACK.md
Jacek Pyziak b1b2cc5827 chore: generate codebase map in .paul/codebase/
INDEX, STACK, ARCHITECTURE, CONVENTIONS, TESTING, INTEGRATIONS, CONCERNS
2026-04-26 21:39:12 +02:00

2.8 KiB

Technology Stack

Runtime

Layer Technology Version Notes
PHP PHP ^8.4 declare(strict_types=1) in all files
Web server Apache XAMPP (local) public/.htaccess handles routing
Database MySQL InnoDB utf8mb4_unicode_ci
Node.js npm dev only Sass build tool only, no runtime JS bundler

PHP Dependencies (composer.json)

Package Version Purpose
dompdf/dompdf ^3.1 PDF generation (receipts, labels)
phpoffice/phpspreadsheet ^5.5 Excel/XLSX export (accounting)
phpmailer/phpmailer ^7.0 SMTP email sending
phpunit/phpunit ^11.5 (dev) Unit testing
dg/bypass-finals ^1.9 (dev) Mock final classes in tests

Framework

Custom lightweight framework — no Laravel/Symfony.

Component File
Application bootstrap src/Core/Application.php
Router src/Core/Routing/Router.php
Request / Response src/Core/Http/Request.php, Response.php
Template engine src/Core/View/Template.php (PHP-native, $e() + $t() helpers)
Session src/Core/Support/Session.php
Logger src/Core/Support/Logger.phpstorage/logs/app.log
CSRF src/Core/Security/Csrf.php
i18n src/Core/I18n/Translator.php (Polish primary: resources/lang/pl/)
DB connection src/Core/Database/ConnectionFactory.php (PDO, no ORM, no medoo)
Migrator src/Core/Database/Migrator.php (custom SQL runner, migrations table)
SSL resolver src/Core/Http/SslCertificateResolver.php (env: CURL_CA_BUNDLE_PATH)

Frontend

  • No CSS framework — custom SCSS design tokens
  • jQuery — used only for jquery-alerts module (resources/modules/jquery-alerts/)
  • No JS bundler — files served directly from public/assets/js/
  • Build: npm run build:assets (Sass → compressed CSS + JS copy)

Build Scripts

"build:css"     sass --style=compressed resources/scss/app.scss  public/assets/css/app.css
"build:modules" sass jquery-alerts.scss + copy jquery-alerts.js
"build:assets"  build:css && build:modules
"watch:css"     sass --watch (development)
"serve"    php -S localhost:8000 -t public public/index.php
"migrate"  php bin/migrate.php
"cron"     php bin/cron.php
"test"     vendor/bin/phpunit -c phpunit.xml --testdox

Environment Variables (.env.example)

Variable Purpose
DB_HOST, DB_PORT, DB_DATABASE MySQL connection
DB_HOST_REMOTE Agent-only manual DB ops (NOT used by app runtime)
CURL_CA_BUNDLE_PATH SSL cert path (XAMPP: C:/xampp/php/extras/ssl/cacert.pem)
ALLEGRO_USER_AGENT_URL Required by Allegro REST API from 01.07.2026
CRON_RUN_ON_WEB, CRON_WEB_LIMIT, CRON_PUBLIC_TOKEN Cron configuration