Files
adsPRO/.paul/codebase/tech-stack.md
2026-05-06 23:19:35 +02:00

2.3 KiB

Tech Stack

Backend

Component Version Notes
PHP 5.6+ assumed (no explicit constraint) No composer.json, no declare(strict_types)
MySQL unspecified Schema in migrations/
Medoo ORM 1.7.10 libraries/medoo/medoo.php, used via global $mdb
RedBeanPHP bundled libraries/rb.php, used in api.php and cron.php
PHPMailer bundled libraries/phpmailer/

Autoloader: custom spl_autoload_register in index.php maps namespaces to autoload/{layer}/class.{Name}.php. No Composer.

Frontend

Library Version Source
jQuery 3.6.0 CDN
jQuery UI bundled libraries/framework/vendor/jquery/jquery_ui/
Bootstrap 5 (active) + 4.1.3 (legacy) CDN + libraries/bootstrap-4.1.3/
DataTables 2.1.7 CDN
Highcharts latest CDN
Select2 4.1.0-rc.0 CDN + libraries/select2/
Font Awesome 6.5.1 (active) + 4.7.0 (legacy) CDN + libraries/font-awesome-4.7.0/
Moment.js 2.18.1 CDN + libraries/moment/
Date Range Picker bundled libraries/daterange/
CKEditor bundled libraries/ckeditor/

Custom assets: libraries/adspro-dialog.js, libraries/functions.js, libraries/xlsxwriter.class.php.

Styling

Configuration

  • config.php — DB credentials, SMTP settings (plaintext; see concerns.md)
  • settings DB table — runtime config, API keys, cron state, feature flags. Accessed via \services\GoogleAdsApi::get_setting($key) / set_setting($k, $v) (used globally despite the class name).

Tooling absent

  • No Composer / package.json / lockfiles
  • No PHPUnit / phpcs / phpstan
  • No .editorconfig, no .github/workflows, no CI
  • No linting / formatting config