PHP Compatibility Index

Is Matomo Analytics compatible with PHP 8?

Version 5.13.1 · 100,000+ active installs · requires PHP 7.2.5

Works on PHP 8.0–8.5, with deprecation notices from 8.0

No removed PHP features found in Matomo Analytics 5.13.1. It uses 15 deprecated feature(s) that only log notices today.

PHP 8.0
⚠ 2
PHP 8.1
⚠ 3
PHP 8.2
⚠ 4
PHP 8.3
⚠ 4
PHP 8.4
⚠ 8
PHP 8.5
⚠ 15

✓ no problems · ⚠ deprecation notices only (still works) · ✗ uses something removed in that PHP version

Check your whole site, not just one plugin. The free PHP Upgrade Check plugin scans every plugin and theme you have installed (including premium and custom ones) and explains each problem. It runs on any host.

Deprecated (works today, logs notices)

File:lineWhat
app/core/Common.php:364Function utf8_encode() is deprecated since PHP 8.2; Use mb_convert_encoding(), UConverter::transcode() or iconv instead
app/core/CronArchive/Performance/Logger.php:60The backtick operator is deprecated since PHP 8.5; Use shell_exec() instead
app/core/Db/BatchInsert.php:194INI directive 'safe_mode' is deprecated since PHP 5.3 and removed since PHP 5.4
app/core/ErrorHandler.php:112The constant "E_STRICT" is deprecated since PHP 8.4
app/core/ErrorHandler.php:155The constant "E_STRICT" is deprecated since PHP 8.4
app/core/Http.php:623INI directive 'safe_mode' is deprecated since PHP 5.3 and removed since PHP 5.4
app/core/Http.php:681Function curl_close() is deprecated since PHP 8.5
app/core/ReportRenderer.php:251Function imagedestroy() is deprecated since PHP 8.5
app/libs/Zend/Db/Table/Row/Abstract.php:819Implicitly marking a parameter as nullable is deprecated since PHP 8.4. Update the type to be explicitly nullable instead. Found implicitly nullable parameter: $select.
app/plugins/CoreVue/Commands/Build.php:206The backtick operator is deprecated since PHP 8.5; Use shell_exec() instead
app/plugins/CoreVue/Commands/Build.php:207The backtick operator is deprecated since PHP 8.5; Use shell_exec() instead
app/plugins/ImageGraph/StaticGraph.php:249Function imagedestroy() is deprecated since PHP 8.5
app/plugins/ImageGraph/StaticGraph.php:251Function imagedestroy() is deprecated since PHP 8.5
app/plugins/RssWidget/RssRenderer.php:63Function strftime() is deprecated since PHP 8.1; Use date() or IntlDateFormatter::format() instead
classes/WpMatomo/WpStatistics/Importer.php:65Implicitly marking a parameter as nullable is deprecated since PHP 8.4. Update the type to be explicitly nullable instead. Found implicitly nullable parameter: $logger.

Removed long ago or protected by a check (code that most likely never runs on PHP 8)

File:lineWhat
app/libs/HTML/QuickForm2/Renderer/Default.php:399Function each() is deprecated since PHP 7.2 and removed since PHP 8.0; Use a foreach loop or ArrayIterator instead
app/libs/HTML/QuickForm2/Renderer/Default.php:410Function each() is deprecated since PHP 7.2 and removed since PHP 8.0; Use a foreach loop or ArrayIterator instead
app/plugins/DBStats/MySQLMetadataDataAccess.php:23Extension 'mysql_' is deprecated since PHP 5.5 and removed since PHP 7.0; Use mysqli instead
app/plugins/DBStats/MySQLMetadataDataAccess.php:23Function mysql_connect() is deprecated since PHP 5.5 and removed since PHP 7.0
app/plugins/DBStats/MySQLMetadataDataAccess.php:24Extension 'mysql_' is deprecated since PHP 5.5 and removed since PHP 7.0; Use mysqli instead
app/plugins/DBStats/MySQLMetadataDataAccess.php:24Function mysql_stat() is deprecated since PHP 5.5 and removed since PHP 7.0
app/plugins/DBStats/MySQLMetadataDataAccess.php:25Extension 'mysql_' is deprecated since PHP 5.5 and removed since PHP 7.0; Use mysqli instead
app/plugins/DBStats/MySQLMetadataDataAccess.php:25Function mysql_close() is deprecated since PHP 5.5 and removed since PHP 7.0

Plugin page on WordPress.org: matomo