Files
2026-05-10 21:32:38 +02:00

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.rb Compass 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.lock present at root
  • npm (JS, theme-only) — themes/package-lock.json

Frameworks

Core:

  • PrestaShop 1.7.8.11 — app/AppKernel.php line 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-toolsmodules/*/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 in modules/paynow/
  • br33f/php-ga4-mp — GA4 Measurement Protocol — modules/pdgoogleanalytycs4pro/
  • libphonenumber-for-php — phone validation (GA4 enhanced conversions)
  • google/recaptchamodules/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_ (schema admin_drmaterac)

Build:

  • Theme assets: pre-bundled to themes/leo_gstore/assets/cache/
  • No root composer.json build 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:25app/config/parameters.php
  • Memcached configured but disabled (ps_caching: CacheMemcached, ps_cache_enable: false)
  • WebP image delivery via .htaccess content negotiation + modules/x13webp/
  • Multi-domain: serves both drmaterac.pl and lulandia.pl from same install — .htaccess

Stack analysis: 2026-05-10 Update after major dependency changes