This documentation is for the PHP tracer v1.x. If you are looking for the PHP tracer v0.x documentation, see the legacy PHP Compatibility Requirements
documentation.
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.
Initial 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.
Maintenance
Full implementation of existing features. Does not receive new features. Support for bug and security fixes only.
Legacy
Legacy 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 (both ZTS and NTS):
Note:
PHP 5.x is not supported starting version 1.0.0. If you are using PHP 5, you can still use the PHP tracer up to version 0.99. 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 8.0+.
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:
Module
Versions
Support Type
Instrumentation level
CakePHP
2.x
All supported PHP versions
Framework-level instrumentation
CodeIgniter
2.x
All supported PHP versions
Framework-level instrumentation
CodeIgniter
3.x
All supported PHP versions
Generic web tracing
Drupal
All supported PHP versions
Framework-level instrumentation
FuelPHP
1.1
All supported PHP versions
Generic web tracing
Laminas
All supported PHP versions
Framework-level instrumentation
Laravel
4.2, 5.x, 6.x
All supported PHP versions
Framework-level instrumentation
Laravel 8+
8.x, 9.x, 10.x, 11.x (tracer 0.52.0+)
All supported PHP versions
Framework-level instrumentation
Lumen
5.2+
All supported PHP versions
Framework-level instrumentation
Magento
1
All supported PHP versions
Generic web tracing
Magento
2
All supported PHP versions
Framework-level instrumentation
Neos Flow
1.1
All supported PHP versions
Generic web tracing
Phalcon
1.3, 3.4
All supported PHP versions
Generic web tracing
RoadRunner
RoadRunner uses two versioning schemes: semantic versioning (3.x) for the SDK component, and calendar versioning (2024.x) for the server. For compatibility purposes, refer to the SDK version. 2.x, 3.x
All supported PHP versions
Framework-level instrumentation
Slim
2.x, 3.x, 4.x
All supported PHP versions
Framework-level instrumentation
Symfony
2.x, 3.3, 3.4, 4.x, 5.x, 6.x, 7.x
All supported PHP versions
Framework-level instrumentation
WordPress
4.x, 5.x, 6.x
All supported PHP versions
Framework-level instrumentation
Yii
2.0
All supported PHP versions
Framework-level instrumentation
Zend Framework
1.12, 1.21
All supported PHP versions
Framework-level instrumentation
Zend Framework
2.x
All supported PHP versions
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.
Module
Versions
Support Type
CakePHP Console
2.x
All supported PHP versions
Laravel Artisan
5.x, 8.x, 9.x, 10.x
All supported PHP versions
Symfony CLI
4.x, 5.x, 6.x, 7.x
All supported PHP versions
To request support for additional CLI libraries, contact our awesome support team.
Instrumenting generators is not supported on PHP 5 and PHP 7.
PCNTL
Datadog supports tracing forked processes using pcntl. When a call to pcntl_fork is detected, a dedicated span is created, and the forked process is instrumented. This can be disabled with DD_TRACE_FORKED_PROCESS. Refer to the library configuration page for more details.
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: