PHP Extension 5.14.0 released

  • New Feature: Add support for PHP 8.4.
  • New Feature: Instrument PDO::connect(). Previously only PDO::__construct() was instrumented.
  • New Feature: Enable crawler detection for traces by setting tideways.features.crawler_detection=1.
  • Improvement: More accurately track the length of shell spans created via proc_open().
  • Improvement: Include the generator function name in calls to Generator methods for PHP 8.4+.
  • Improvement: Namespaced endpoints, such as indices.refresh, are now instrumented for elasticsearch/elasticsearch 7.x and opensearch-project/opensearch-php 2.x.
  • Improvement: Collect the HTTP method used for Elasticsearch and OpenSearch instrumentation, which allows to distinguish between a creation and deletion request for the same document.
  • Improvement: Add support for pda/pheanstalk 4.x and 5.x.
  • Improvement: Disable workaround for PHP bug GH-15851 in PHP versions including a fix.
  • Bugfix: More accurately track the time spent in proc_close().
  • Bugfix: Perform memory accounting of a proc_open() span after proc_open() finishes, not after the process terminated.
  • Bugfix: proc_terminate() no longer stops instrumentation, as it does not guarantee that the process will terminate or has terminated.
  • Bugfix: curl_close() no longer stops instrumentation for a CurlHandle attached to a CurlMultiHandle.
  • Bugfix: Functions instrumented with #[WithSpan] now correctly keep being instrumented after restarting Tideways with multiple calls to \Tideways\Profiler::start().
  • Bugfix: The custom span limit is now correctly being reset when restarting Tideways with multiple calls to \Tideways\Profiler::start().
  • Bugfix: Reliably collect the ttr, delay and priority values for Pheanstalk spans.
  • Bugfix: Fix instrumentation with webonyx/graphql-php 15.16+.

About the author

Tim Düsterhus

I’m a Software Engineer at Tideways, where I work on the PHP extension. My focus is on helping developers gain accurate insights into the runtime behavior of their applications with minimal overhead.

I’m interested in PHP internals and regularly contribute performance improvements to the PHP engine. I enjoy working on problems where small changes can have a measurable impact on the performance and efficiency of PHP applications. Several of my performance optimizations have become part of PHP itself, helping improve the language for developers worldwide.