/opt/alt/php-xray/php/profiler
Edit: /opt/alt/php-xray/php/profiler/xray-profiler.php (8529B)
setData($errno, $errstr, $errfile, $errline);
}
}
} else {
return;
}
// Send log
if (!function_exists('xray_profiler_send_log')) {
/**
* @return void
*/
function xray_profiler_send_log()
{
if (class_exists('\XrayProfiler\Log')) {
Log::instance()->sendData();
}
}
register_shutdown_function('xray_profiler_send_log');
}
} catch (Exception $e) {
return;
}
try {
include 'classes/xray-profiler-collector.php';
include 'classes/xray-profiler-collector-shortcodes.php';
include 'classes/xray-profiler-collector-cacheability.php';
include 'classes/xray-profiler-css-resource-parser.php';
include 'classes/xray-profiler-collector-blocking-resources.php';
include 'classes/xray-profiler-web-vitals-injector.php';
if (!function_exists('xray_profiler_set_error_handler')) {
/**
* @return void
*/
function xray_profiler_set_error_handler()
{
set_error_handler(function ($errno, $errstr, $errfile, $errline) {
xray_profiler_log($errno, $errstr, $errfile, $errline);
return true;
}, E_ALL);
}
}
if (!function_exists('xray_profiler_restore_error_handler')) {
/**
* @return void
*/
function xray_profiler_restore_error_handler()
{
restore_error_handler();
}
}
if (!function_exists('xray_profiler_get_shortcodes_data')) {
/**
* @return string
*/
function xray_profiler_get_shortcodes_data()
{
$result = '';
if (class_exists('\XrayProfiler\CollectorShortcode')) {
xray_profiler_set_error_handler();
$xray_data = [
'shortcodes' => CollectorShortcode::instance()->getXrayData(),
];
if (!($json = json_encode($xray_data))) {
trigger_error("Can't prepare json for " . __FUNCTION__, 2);
} else {
$result = $json;
}
xray_profiler_restore_error_handler();
}
return $result;
}
}
// Filters
if (class_exists('\XrayProfiler\CollectorShortcode')) {
// @phpcs:ignore PHPCompatibility.Constants.NewConstants.php_int_minFound
$priority = defined('PHP_INT_MIN') ? PHP_INT_MIN : 0 - PHP_INT_MAX;
add_filter('pre_do_shortcode_tag', function ($return, $tag, $attr, $m) {
xray_profiler_set_error_handler();
$return = CollectorShortcode::instance()->preDoShortcodeTagEarly($return, $tag, $attr, $m);
xray_profiler_restore_error_handler();
return $return;
}, $priority, 4);
add_filter('pre_do_shortcode_tag', function ($return, $tag, $attr, $m) {
xray_profiler_set_error_handler();
$return = CollectorShortcode::instance()->preDoShortcodeTagLate($return, $tag, $attr, $m);
xray_profiler_restore_error_handler();
return $return;
}, PHP_INT_MAX, 4);
add_filter('do_shortcode_tag', function ($output, $tag, $attr, $m) {
xray_profiler_set_error_handler();
$output = CollectorShortcode::instance()->doShortcodeTagLate($output, $tag, $attr, $m);
xray_profiler_restore_error_handler();
return $output;
}, PHP_INT_MAX, 4);
}
if (!function_exists('xray_profiler_get_cacheability_data')) {
/**
* @return string
*/
function xray_profiler_get_cacheability_data()
{
$result = '';
if (class_exists('\XrayProfiler\CollectorCacheability')) {
xray_profiler_set_error_handler();
$xray_data = [
'cacheability' => CollectorCacheability::instance()->getXrayData(),
];
if (!($json = json_encode($xray_data))) {
trigger_error("Can't prepare json for " . __FUNCTION__, 2);
} else {
$result = $json;
}
xray_profiler_restore_error_handler();
}
return $result;
}
}
if (!function_exists('xray_profiler_get_blocking_resources_data')) {
/**
* @return string
*/
function xray_profiler_get_blocking_resources_data()
{
$result = '';
if (class_exists('\XrayProfiler\CollectorBlockingResources')) {
xray_profiler_set_error_handler();
$xray_data = [
'blocking_resources' => CollectorBlockingResources::instance()->getXrayData(),
];
if (!($json = json_encode($xray_data))) {
trigger_error("Can't prepare json for " . __FUNCTION__, 2);
} else {
$result = $json;
}
xray_profiler_restore_error_handler();
}
return $result;
}
}
// Filters
if (class_exists('\XrayProfiler\CollectorBlockingResources')) {
// @phpcs:ignore PHPCompatibility.Constants.NewConstants.php_int_minFound
$priority = defined('PHP_INT_MIN') ? PHP_INT_MIN : 0 - PHP_INT_MAX;
add_action(
'template_redirect',
function () {
ob_start(array(
CollectorBlockingResources::instance(),
'startOutputBuffering'
));
},
$priority
);
add_action(
'shutdown',
array(
CollectorBlockingResources::instance(),
'stopOutputBuffering'
),
$priority + 1
);
}
// WebVitals Filters
if (class_exists('\XrayProfiler\WebVitalsInjector')) {
if (
@file_exists('/opt/alt/php-xray/php/advanced_metrics.enabled') ||
(defined('CL_STAGING_MODE') && CL_STAGING_MODE)
) {
add_action(
'wp_footer',
array(
WebVitalsInjector::instance(),
'inject'
),
1000
);
}
}
} catch (Exception $e) {
xray_profiler_log(E_USER_WARNING, $e->getMessage(), $e->getFile(), $e->getLine());
}
}