2.3 KiB
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
- SCSS: layout/style.scss → layout/style.css (manual compilation; no automated build pipeline)
- Source map present: layout/style.css.map
Configuration
- config.php — DB credentials, SMTP settings (plaintext; see concerns.md)
settingsDB 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