3.8 KiB
3.8 KiB
Technology Stack
Analysis Date: 2026-05-10
Languages
Primary:
- PHP 7.4 / 8.2.x runtime — All application code (PrestaShop targets PHP 7.4; current server reports 8.2.12)
- JavaScript (ES5/ES6 transpiled) — Theme assets and module front-end behavior
Secondary:
- Smarty templates (
.tpl) — Front-end rendering layer - Twig templates — Symfony admin layer
- Sass/SCSS — Theme styling (
themes/leo_gstore/config.rbCompass config) - HTML5/CSS3 — Presentation
- SQL (MySQL) — Data layer
Runtime
Environment:
- PHP (declared 7.4 in PrestaShop core; current PHP-CLI 8.2.12) —
app/AppKernel.php - Apache web server with
mod_rewrite—.htaccess(429 lines of rewrite rules) - MySQL with InnoDB —
app/config/parameters.php
Package Manager:
- Composer (PHP) —
composer.lockpresent at root - npm (JS, theme-only) —
themes/package-lock.json
Frameworks
Core:
- PrestaShop 1.7.8.11 —
app/AppKernel.phpline 35 - Symfony (FrameworkBundle, SecurityBundle, TwigBundle, MonologBundle, SwiftmailerBundle, DoctrineBundle) —
app/AppKernel.php - Doctrine ORM — used for admin/back-office Symfony layer
- Smarty — front-office template engine —
config/smarty.config.inc.php,config/smartyfront.config.inc.php
Testing:
- PHPUnit (~5.7) — present only in select PrestaShop modules (
modules/ps_facetedsearch/,modules/gamification/) - Mockery —
modules/ps_facetedsearch/tests/php/ - PHPStan via
prestashop/php-dev-tools—modules/*/tests/phpstan/phpstan.neon(40+ modules) - No root-level test setup; custom modules have no tests
Build/Dev:
- Babel 7.0.0-rc.1 —
themes/package-lock.json - Compass/Sass —
themes/leo_gstore/config.rb - Pre-built theme bundles —
themes/leo_gstore/assets/cache/*.js,themes/leo_gstore/assets/cache/*.css
Key Dependencies
Critical (PHP):
- Guzzle HTTP client (v6/v7) — used by paynow, empikmarketplace, smartsupp
- Symfony components (Cache, DI, YAML, FileSystem) — core + modules
- PSR-7/PSR-11/PSR-15 interfaces — HTTP messaging
pay-now-php-sdk— payment integration inmodules/paynow/br33f/php-ga4-mp— GA4 Measurement Protocol —modules/pdgoogleanalytycs4pro/libphonenumber-for-php— phone validation (GA4 enhanced conversions)google/recaptcha—modules/eicaptcha/vendor/google/recaptcha/
Critical (JS):
- jQuery — bundled in theme (
themes/leo_gstore/assets/cache/bottom-*.js) - Slick carousel —
themes/leo_gstore/assets/js/custom.js - Moment.js —
js/date.js - CodeMirror —
modules/advancedpopupcreator/
Configuration
Environment:
- Database/secrets in
app/config/parameters.php(plain PHP — secrets currently committed, see concerns.md) - Symfony YAML —
app/config/config.yml,app/config/parameters.yml - Constants:
config/defines.inc.php(paths,_PS_ADMIN_DIR_etc.) - Bootstrap:
config/bootstrap.php,config/config.inc.php - Locale: pl-PL —
app/config/parameters.php - DB prefix:
materac_(schemaadmin_drmaterac)
Build:
- Theme assets: pre-bundled to
themes/leo_gstore/assets/cache/ - No root
composer.jsonbuild pipeline; modules ship pre-built
Platform Requirements
Development:
- Apache + PHP 7.4+ + MySQL stack
- Composer for PHP dependencies
- Node/npm only required for theme rebuild
Production:
- Shared/dedicated hosting with Apache + mod_rewrite
- SMTP transport configured to
127.0.0.1:25—app/config/parameters.php - Memcached configured but disabled (
ps_caching: CacheMemcached,ps_cache_enable: false) - WebP image delivery via
.htaccesscontent negotiation +modules/x13webp/ - Multi-domain: serves both
drmaterac.plandlulandia.plfrom same install —.htaccess
Stack analysis: 2026-05-10 Update after major dependency changes