PHP Compatibility Requirements

Runtime support policy for PHP APM

The PHP Datadog Trace library is open source - view the GitHub repository for more information.

Datadog APM for PHP is built upon dependencies defined in specific versions of the host operating system, PHP runtime, certain PHP libraries, and the Datadog Agent or API. When these versions are no longer supported by their maintainers, Datadog APM for PHP limits its support for these as well.

Levels of support

LevelSupport provided
UnsupportedNo implementation. Contact our customer support team for special requests.
BetaInitial implementation. May not yet contain all features. Support for new features, bug, and security fixes provided on a best-effort basis.
General Availability (GA)Full implementation of all features. Full support for new features, bug, and security fixes.
MaintenanceFull implementation of existing features. Does not receive new features. Support for bug and security fixes only.
LegacyLegacy implementation. May have limited function, but no maintenance provided. Contact the support team for special requests.
End-of-life (EOL)No support. The version can still be used but no bug fixes are provided.

PHP APM supports the following PHP versions:

Note: PHP 5.x is fully supported until version 0.75.0. It is now in maintenance mode and supported with security and important bug fixes until December 31, 2023.
If you are using PHP 5.x version in your application and have a feature request which is critical for your business needs, contact Datadog Support.
It's recommended to use officially supported versions of PHP, especially 7.4, 8.0, and 8.1.
PHP VersionSupport levelPackage version
8.1.xGeneral Availability> 0.66.0+
8.0.xGeneral Availability> 0.52.0+
7.4.xGeneral AvailabilityAll
7.3.xGeneral AvailabilityAll
7.2.xGeneral AvailabilityAll
7.1.xGeneral AvailabilityAll
7.0.xGeneral AvailabilityAll
5.6.xMaintenance (until December 31, 2023)All
5.5.xMaintenance (until December 31, 2023)All
5.4.xMaintenance (until December 31, 2023)All

PHP APM supports the following SAPI’s:

SAPISupport type
apache2handlerFully Supported
cliFully Supported
fpm-fcgiFully Supported
cgi-fcgiFully Supported

Supported processor architectures

PHP APM supports the following architectures:

Processor architecturesSupport levelPackage version
Linux GNU amd64 (x86-64-linux-gnu)GAAll
Linux MUSL amd64 (x86-64-linux-musl)GAAll
Linux GNU arm64 (aarch64-linux-gnu)GA> 0.78.0
Linux MUSL arm64 (aarch64-linux-musl)GA> 0.78.0

Integrations

Web framework compatibility

By default, Datadog supports all PHP web frameworks out of the box, with either framework-level instrumentation, or generic web tracing.

Framework-level instrumentation includes tracing of internal methods and framework specific tagging.

Generic web tracing includes a web.request span to track latency and errors that originated from the call, in addition to spans for supported libraries — for example: database and HTTP clients.

The following table enumerates some of the frameworks and versions Datadog successfully traces.

Web frameworks:

ModuleVersionsSupport TypeInstrumentation level
CakePHP2.xAll supported PHP versionsFramework-level instrumentation
CodeIgniter2.xPHP 7+Framework-level instrumentation
CodeIgniter3.xPHP 7+Generic web tracing
Laravel4.2, 5.x, 6.xAll supported PHP versionsFramework-level instrumentation
Laravel 88.x (tracer 0.52.0+)All supported PHP versionsFramework-level instrumentation
Lumen5.2+All supported PHP versionsFramework-level instrumentation
Symfony 33.3, 3.4All supported PHP versionsFramework-level instrumentation
Symfony 44.xAll supported PHP versionsFramework-level instrumentation
Symfony 55.x (tracer 0.50.0+)All supported PHP versionsFramework-level instrumentation
WordPress4.x, 5.xPHP 7+Framework-level instrumentation
Zend Framework1.12All supported PHP versionsFramework-level instrumentation
Zend Framework2.xAll supported PHP versionsGeneric web tracing
Yii1.1, 2.0All supported PHP versionsFramework-level instrumentation
DrupalAll supported PHP versionsGeneric web tracing
Magento1, 2All supported PHP versionsGeneric web tracing
Phalcon1.3, 3.4All supported PHP versionsGeneric web tracing
Slim2.x, 3.x, 4.xAll supported PHP versionsFramework-level instrumentation
Neos Flow1.1All supported PHP versionsGeneric web tracing
FuelPHP1.1PHP 7+Generic web tracing

Note that even if you don’t see your web framework in this list, it is supported out of the box with the latest release of the tracer.

Datadog is continuously adding more support for in-depth tracing for PHP web-frameworks. To request support for additional span metadata and framework internals, contact our awesome support team.

CLI library compatibility

Tracing from the CLI SAPI is disabled by default. To enable tracing of PHP CLI scripts, set DD_TRACE_CLI_ENABLED=true.

ModuleVersionsSupport Type
CakePHP Console2.xFully Supported
Laravel Artisan5.xFully Supported

To request support for additional CLI libraries, contact our awesome support team.

Datastore compatibility

ModuleVersionsSupport Type
Amazon RDS (using PDO or MySQLi)(Any Supported PHP)Fully Supported
Elasticsearch1.xFully Supported
EloquentLaravel supported versionsFully Supported
Memcached(Any Supported PHP)Fully Supported
MongoDB - via mongo extension1.4.xFully Supported
MySQLi(Any Supported PHP)Fully Supported
PDO (MySQL, PostgreSQL, MariaDB)(Any Supported PHP)Fully Supported
PhpRedis3, 4, 5PHP 7, 8
Predis1.1Fully Supported

To request support for additional datastores, contact our awesome support team.

Library compatibility

ModuleVersionsSupport Type
Curl(Any Supported PHP)Fully Supported
Guzzle5.xFully Supported
Guzzle6.xFully Supported

To request support for additional libraries, contact our awesome support team.

Deep call stacks on PHP 5

The call stack is limited on PHP 5. See the deep call stack troubleshooting page for more details.

Generators

Instrumenting generators is not supported on PHP 5 and PHP 7.

PCNTL

Datadog does not offer support for tracing processes forked using pcntl. When a call to pcntl_fork is detected, tracing is disabled in the forked process. The main process can still be traced.

If the application invokes pcntl_unshare(CLONE_NEWUSER); and the tracer is installed, the application fatally crashes. This happens because unshare with CLONE_NEWUSER requires the process not to be threaded, while the PHP tracer uses a separate thread to send traces to the Datadog Agent without blocking the main process.

Further Reading

Additional helpful documentation, links, and articles: