-
Notifications
You must be signed in to change notification settings - Fork 9
PHP Compatibility
This page documents PHP compatibility for the TicketsCAD v3.44 Legacy release, which is the current stable version available for download.
TicketsCAD 3.44.1+ supports PHP 7.0 through 8.4+ via a built-in compatibility layer.
Tested on April 2, 2026 against MariaDB 10.11 using automated Docker test suite:
| PHP Version | Build | HTTP | Tables | Admin | Compat | Passwords | XSS Safe | Fatals | Result |
|---|---|---|---|---|---|---|---|---|---|
| 8.4.19 | OK | 200 | 110 | OK | OK | 3/3 | Yes | 0 | PASS |
| 8.3.30 | OK | 200 | 110 | OK | OK | 3/3 | Yes | 0 | PASS |
| 8.2.30 | OK | 200 | 110 | OK | OK | 3/3 | Yes | 0 | PASS |
| 8.1.33 | OK | 200 | 110 | OK | OK | 3/3 | Yes | 0 | PASS |
| 8.0.30 | OK | 200 | 110 | OK | OK | 3/3 | Yes | 0 | PASS |
| 7.4 | N/A | — | — | — | — | — | — | — | Docker build fails (Buster archived) |
PHP 7.4 works on existing installations (XAMPP, shared hosting) but cannot be tested via Docker because Debian Buster's apt repositories were archived in 2024. The compat layer polyfills all necessary functions.
| PHP Version | Status | Notes |
|---|---|---|
| 8.4 | Recommended | Current release, fully tested |
| 8.3 | Supported | Fully tested |
| 8.2 | Supported | Default in Docker image |
| 8.1 | Supported |
strftime() deprecation suppressed |
| 8.0 | Supported |
each() and create_function() polyfilled |
| 7.4 | Legacy | End of life, works on existing installs |
| 7.0–7.3 | Best effort | May work, not actively tested |
The file incs/compat.inc.php automatically polyfills functions removed in newer PHP versions:
| Function | Removed In | Polyfill |
|---|---|---|
utf8_encode() / utf8_decode()
|
PHP 8.2 |
mb_convert_encoding() fallback |
each() |
PHP 8.0 | Manual array iteration |
create_function() |
PHP 8.0 |
eval() wrapper |
FILTER_SANITIZE_STRING |
PHP 8.1 | Maps to FILTER_DEFAULT
|
str_contains() / str_starts_with() / str_ends_with()
|
Added in 8.0 | Backported for PHP 7.x |
Deprecation warnings from strftime(), null parameter passing, and ${var} interpolation are suppressed.
PHP 8.2 is the recommended version. It's the default in the Docker image and receives active security updates.
php -vOr visit http://your-server/tickets/tools/diagnose.php for a full compatibility check.