Error
Call to undefined function Mai\EmbedFixer\ray() Error thrown with message "Call to undefined function Mai\EmbedFixer\ray()" Stacktrace: #15 Error in /home/mfarre22/domains/mikefarrellsports.com/public_html/wp-content/plugins/mai-embed-fixer/mai-embed-fixer.php:124 #14 Mai\EmbedFixer\add_scripts in /home/mfarre22/domains/mikefarrellsports.com/public_html/wp-includes/class-wp-hook.php:324 #13 WP_Hook:apply_filters in /home/mfarre22/domains/mikefarrellsports.com/public_html/wp-includes/plugin.php:205 #12 apply_filters in /home/mfarre22/domains/mikefarrellsports.com/public_html/wp-includes/post-template.php:256 #11 the_content in /home/mfarre22/domains/mikefarrellsports.com/public_html/wp-content/plugins/mai-engine/lib/classes/class-mai-entry.php:1206 #10 Mai_Entry:do_content in /home/mfarre22/domains/mikefarrellsports.com/public_html/wp-content/plugins/mai-engine/lib/classes/class-mai-entry.php:350 #9 Mai_Entry:render in /home/mfarre22/domains/mikefarrellsports.com/public_html/wp-content/plugins/mai-engine/lib/functions/entries.php:226 #8 mai_do_entry in /home/mfarre22/domains/mikefarrellsports.com/public_html/wp-content/plugins/mai-engine/lib/structure/loop.php:94 #7 mai_do_loop in /home/mfarre22/domains/mikefarrellsports.com/public_html/wp-includes/class-wp-hook.php:324 #6 WP_Hook:apply_filters in /home/mfarre22/domains/mikefarrellsports.com/public_html/wp-includes/class-wp-hook.php:348 #5 WP_Hook:do_action in /home/mfarre22/domains/mikefarrellsports.com/public_html/wp-includes/plugin.php:517 #4 do_action in /home/mfarre22/domains/mikefarrellsports.com/public_html/wp-content/themes/genesis/lib/framework.php:66 #3 genesis in /home/mfarre22/domains/mikefarrellsports.com/public_html/wp-content/themes/genesis/single.php:15 #2 include in /home/mfarre22/domains/mikefarrellsports.com/public_html/wp-includes/template-loader.php:106 #1 require_once in /home/mfarre22/domains/mikefarrellsports.com/public_html/wp-blog-header.php:19 #0 require in /home/mfarre22/domains/mikefarrellsports.com/public_html/index.php:17
Stack frames (16)
15
Error
/home/mfarre22/domains/mikefarrellsports.com/public_html/wp-content/plugins/mai-embed-fixer/mai-embed-fixer.php124
14
Mai\EmbedFixer\add_scripts
/home/mfarre22/domains/mikefarrellsports.com/public_html/wp-includes/class-wp-hook.php324
13
WP_Hook apply_filters
/home/mfarre22/domains/mikefarrellsports.com/public_html/wp-includes/plugin.php205
12
apply_filters
/home/mfarre22/domains/mikefarrellsports.com/public_html/wp-includes/post-template.php256
11
the_content
/home/mfarre22/domains/mikefarrellsports.com/public_html/wp-content/plugins/mai-engine/lib/classes/class-mai-entry.php1206
10
Mai_Entry do_content
/home/mfarre22/domains/mikefarrellsports.com/public_html/wp-content/plugins/mai-engine/lib/classes/class-mai-entry.php350
9
Mai_Entry render
/home/mfarre22/domains/mikefarrellsports.com/public_html/wp-content/plugins/mai-engine/lib/functions/entries.php226
8
mai_do_entry
/home/mfarre22/domains/mikefarrellsports.com/public_html/wp-content/plugins/mai-engine/lib/structure/loop.php94
7
mai_do_loop
/home/mfarre22/domains/mikefarrellsports.com/public_html/wp-includes/class-wp-hook.php324
6
WP_Hook apply_filters
/home/mfarre22/domains/mikefarrellsports.com/public_html/wp-includes/class-wp-hook.php348
5
WP_Hook do_action
/home/mfarre22/domains/mikefarrellsports.com/public_html/wp-includes/plugin.php517
4
do_action
/home/mfarre22/domains/mikefarrellsports.com/public_html/wp-content/themes/genesis/lib/framework.php66
3
genesis
/home/mfarre22/domains/mikefarrellsports.com/public_html/wp-content/themes/genesis/single.php15
2
include
/home/mfarre22/domains/mikefarrellsports.com/public_html/wp-includes/template-loader.php106
1
require_once
/home/mfarre22/domains/mikefarrellsports.com/public_html/wp-blog-header.php19
0
require
/home/mfarre22/domains/mikefarrellsports.com/public_html/index.php17
/home/mfarre22/domains/mikefarrellsports.com/public_html/wp-content/plugins/mai-embed-fixer/mai-embed-fixer.php
 
    // Set up tag processor.
    $tags = new WP_HTML_Tag_Processor( $content );
 
    // Loop through tags.
    while ( $tags->next_tag( [ 'tag_name' => 'blockquote', 'class_name' => 'instagram-media' ] ) ) {
        $has_instagram = true;
        break;
    }
 
    // Bail if this post doesn't have a twitter or instagram embed.
    if ( ! $has_twitter && ! $has_instagram ) {
        return $content;
    }
 
    // If we have a twitter embed.
    if ( $has_twitter ) {
        // Check if the content already has Twitter script tags.
        if ( str_contains( $content, 'https://platform.twitter.com/widgets.js' ) ) {
            ray( 'we have twitter script' );
 
            // Remove all Twitter script tags except the first one.
            $content = preg_replace( '/<script[^>]*src="[^"]*platform\.twitter\.com\/widgets\.js[^"]*"[^>]*><\/script>/', '', $content, -1 );
        }
 
        // Add the script at the end of the content.
        $content .= '<script async class="mai-twitter-script" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>';
    }
 
    // If we have an instagram embed.
    if ( $has_instagram ) {
        // Check if the content already has Instagram script tags.
        if ( str_contains( $content, '//www.instagram.com/embed.js' ) ) {
            // Remove all Instagram script tags except the first one.
            $content = preg_replace( '/<script[^>]*src="[^"]*www\.instagram\.com\/embed\.js[^"]*"[^>]*><\/script>/', '', $content, -1 );
        }
 
        // Add the script at the end of the content.
        $content .= '<script async class="mai-instagram-script" src="//www.instagram.com/embed.js" charset="utf-8"></script>';
    }
Arguments
  1. "Call to undefined function Mai\EmbedFixer\ray()"
    
/home/mfarre22/domains/mikefarrellsports.com/public_html/wp-includes/class-wp-hook.php
 
        $this->iterations[ $nesting_level ] = $this->priorities;
 
        $num_args = count( $args );
 
        do {
            $this->current_priority[ $nesting_level ] = current( $this->iterations[ $nesting_level ] );
 
            $priority = $this->current_priority[ $nesting_level ];
 
            foreach ( $this->callbacks[ $priority ] as $the_ ) {
                if ( ! $this->doing_action ) {
                    $args[0] = $value;
                }
 
                // Avoid the array_slice() if possible.
                if ( 0 === $the_['accepted_args'] ) {
                    $value = call_user_func( $the_['function'] );
                } elseif ( $the_['accepted_args'] >= $num_args ) {
                    $value = call_user_func_array( $the_['function'], $args );
                } else {
                    $value = call_user_func_array( $the_['function'], array_slice( $args, 0, $the_['accepted_args'] ) );
                }
            }
        } while ( false !== next( $this->iterations[ $nesting_level ] ) );
 
        unset( $this->iterations[ $nesting_level ] );
        unset( $this->current_priority[ $nesting_level ] );
 
        --$this->nesting_level;
 
        return $value;
    }
 
    /**
     * Calls the callback functions that have been added to an action hook.
     *
     * @since 4.7.0
     *
     * @param array $args Parameters to pass to the callback functions.
/home/mfarre22/domains/mikefarrellsports.com/public_html/wp-includes/plugin.php
        $all_args = func_get_args(); // phpcs:ignore PHPCompatibility.FunctionUse.ArgumentFunctionsReportCurrentValue.NeedsInspection
        _wp_call_all_hook( $all_args );
    }
 
    if ( ! isset( $wp_filter[ $hook_name ] ) ) {
        if ( isset( $wp_filter['all'] ) ) {
            array_pop( $wp_current_filter );
        }
 
        return $value;
    }
 
    if ( ! isset( $wp_filter['all'] ) ) {
        $wp_current_filter[] = $hook_name;
    }
 
    // Pass the value to WP_Hook.
    array_unshift( $args, $value );
 
    $filtered = $wp_filter[ $hook_name ]->apply_filters( $value, $args );
 
    array_pop( $wp_current_filter );
 
    return $filtered;
}
 
/**
 * Calls the callback functions that have been added to a filter hook, specifying arguments in an array.
 *
 * @since 3.0.0
 *
 * @see apply_filters() This function is identical, but the arguments passed to the
 *                      functions hooked to `$hook_name` are supplied using an array.
 *
 * @global WP_Hook[] $wp_filter         Stores all of the filters and actions.
 * @global int[]     $wp_filters        Stores the number of times each filter was triggered.
 * @global string[]  $wp_current_filter Stores the list of current filters with the current one last.
 *
 * @param string $hook_name The name of the filter hook.
 * @param array  $args      The arguments supplied to the functions hooked to `$hook_name`.
/home/mfarre22/domains/mikefarrellsports.com/public_html/wp-includes/post-template.php
 
/**
 * Displays the post content.
 *
 * @since 0.71
 *
 * @param string $more_link_text Optional. Content for when there is more text.
 * @param bool   $strip_teaser   Optional. Strip teaser content before the more text. Default false.
 */
function the_content( $more_link_text = null, $strip_teaser = false ) {
    $content = get_the_content( $more_link_text, $strip_teaser );
 
    /**
     * Filters the post content.
     *
     * @since 0.71
     *
     * @param string $content Content of the current post.
     */
    $content = apply_filters( 'the_content', $content );
    $content = str_replace( ']]>', ']]&gt;', $content );
    echo $content;
}
 
/**
 * Retrieves the post content.
 *
 * @since 0.71
 * @since 5.2.0 Added the `$post` parameter.
 *
 * @global int   $page      Page number of a single post/page.
 * @global int   $more      Boolean indicator for whether single post/page is being viewed.
 * @global bool  $preview   Whether post/page is in preview mode.
 * @global array $pages     Array of all pages in post/page. Each array element contains
 *                          part of the content separated by the `<!--nextpage-->` tag.
 * @global int   $multipage Boolean indicator for whether multiple pages are in play.
 *
 * @param string             $more_link_text Optional. Content for when there is more text.
 * @param bool               $strip_teaser   Optional. Strip teaser content before the more text. Default false.
 * @param WP_Post|object|int $post           Optional. WP_Post instance or Post ID/object. Default null.
/home/mfarre22/domains/mikefarrellsports.com/public_html/wp-content/plugins/mai-engine/lib/classes/class-mai-entry.php
            ]
        );
 
        $close = genesis_markup(
            [
                'close'   => '</div>',
                'context' => 'entry-content',
                'echo'    => false,
                'params'  => [
                    'args'  => $this->args,
                    'entry' => $this->entry,
                ],
            ]
        );
 
        // Single needs the_content() directly, to parse_blocks and other filters.
        if ( 'single' === $this->context ) {
            echo $open;
            do_action( "mai_before_entry_content_inner", $this->entry, $this->args );
            the_content();
            do_action( "mai_after_entry_content_inner", $this->entry, $this->args );
            $this->do_post_content_nav();
            echo $close;
 
        } else {
            // Content.
            switch ( $this->type ) {
                case 'post':
                    // So many people wanted (expected?) the full content to show here.
                    $content = $this->get_post_content( $this->id );
                break;
                case 'term':
                    $content = term_description( $this->id );
                break;
                case 'user':
                    $content = get_the_author_meta( 'description', $this->id );
                break;
                default:
                    $content = '';
            }
/home/mfarre22/domains/mikefarrellsports.com/public_html/wp-content/plugins/mai-engine/lib/classes/class-mai-entry.php
        // Loop through our elements.
        foreach ( $this->args['show'] as $element ) {
 
            // Skip image is first, skip.
            if ( ( 'image' === $element ) && $image_first ) {
                continue;
            }
 
            // Skip if an outside element.
            if ( in_array( $element, $outside_elements ) ) {
                continue;
            }
 
            // Output the element if a method or function exists.
            $method   = "do_{$element}";
            $function = "mai_do_{$element}";
 
            if ( method_exists( $this, $method ) ) {
                do_action( "mai_before_entry_{$element}", $this->entry, $this->args );
                $this->$method();
                do_action( "mai_after_entry_{$element}", $this->entry, $this->args );
            } elseif ( function_exists( $function ) ) {
                do_action( "mai_before_entry_{$element}", $this->entry, $this->args );
                $function( $this->entry, $this->args );
                do_action( "mai_after_entry_{$element}", $this->entry, $this->args );
            }
        }
 
        if ( ! $image_only ) {
 
            // Entry wrap close.
            genesis_markup(
                [
                    'close'   => '</div>',
                    'context' => 'entry-wrap',
                    'echo'    => true,
                    'params'  => [
                        'args'  => $this->args,
                        'entry' => $this->entry,
                    ],
/home/mfarre22/domains/mikefarrellsports.com/public_html/wp-content/plugins/mai-engine/lib/functions/entries.php
                'args'  => $args,
                'query' => $query,
            ],
        ]
    );
}
 
/**
 * Render a grid entry.
 *
 * @since 0.1.0
 *
 * @param WP_Post|WP_Term $entry The (post, term, user) entry object.
 * @param array           $args  The object to get the entry.
 *
 * @return  void
 */
function mai_do_entry( $entry, $args = [] ) {
    $entry = new Mai_Entry( $entry, $args );
    $entry->render();
}
 
/**
 * Get the entry index context, for use in mai_get_index().
 *
 * @since 2.34.0
 *
 * @param string $context The existing context.
 *
 * @return string
 */
function mai_get_entry_index_context( $context ) {
    switch ( $context ) {
        case 'archive':
            $return = 'entry-archive';
        break;
        case 'block':
            $return = 'entry-grid';
        break;
        default:
/home/mfarre22/domains/mikefarrellsports.com/public_html/wp-content/plugins/mai-engine/lib/structure/loop.php
    if ( have_posts() ) {
 
        /**
         * Fires inside the standard loop, before the while() block.
         */
        do_action( 'genesis_before_while' );
 
        if ( $archive ) {
            mai_do_entries_open( $args );
        }
 
        while ( have_posts() ) {
            the_post();
 
            /**
             * Fires inside the standard loop, before the entry opening markup.
             */
            do_action( 'genesis_before_entry' );
 
            mai_do_entry( get_post(), $args );
 
            /**
             * Fires inside the standard loop, before the entry opening markup.
             */
            do_action( 'genesis_after_entry' );
        }
 
        if ( $archive ) {
            mai_do_entries_close( $args );
        }
 
        /**
         * Fires inside the standard loop, after the while() block.
         */
        do_action( 'genesis_after_endwhile' );
    } else {
 
        if ( $archive ) {
            /**
             * Fires inside the standard loop when they are no posts to show.
/home/mfarre22/domains/mikefarrellsports.com/public_html/wp-includes/class-wp-hook.php
 
        $this->iterations[ $nesting_level ] = $this->priorities;
 
        $num_args = count( $args );
 
        do {
            $this->current_priority[ $nesting_level ] = current( $this->iterations[ $nesting_level ] );
 
            $priority = $this->current_priority[ $nesting_level ];
 
            foreach ( $this->callbacks[ $priority ] as $the_ ) {
                if ( ! $this->doing_action ) {
                    $args[0] = $value;
                }
 
                // Avoid the array_slice() if possible.
                if ( 0 === $the_['accepted_args'] ) {
                    $value = call_user_func( $the_['function'] );
                } elseif ( $the_['accepted_args'] >= $num_args ) {
                    $value = call_user_func_array( $the_['function'], $args );
                } else {
                    $value = call_user_func_array( $the_['function'], array_slice( $args, 0, $the_['accepted_args'] ) );
                }
            }
        } while ( false !== next( $this->iterations[ $nesting_level ] ) );
 
        unset( $this->iterations[ $nesting_level ] );
        unset( $this->current_priority[ $nesting_level ] );
 
        --$this->nesting_level;
 
        return $value;
    }
 
    /**
     * Calls the callback functions that have been added to an action hook.
     *
     * @since 4.7.0
     *
     * @param array $args Parameters to pass to the callback functions.
/home/mfarre22/domains/mikefarrellsports.com/public_html/wp-includes/class-wp-hook.php
        } while ( false !== next( $this->iterations[ $nesting_level ] ) );
 
        unset( $this->iterations[ $nesting_level ] );
        unset( $this->current_priority[ $nesting_level ] );
 
        --$this->nesting_level;
 
        return $value;
    }
 
    /**
     * Calls the callback functions that have been added to an action hook.
     *
     * @since 4.7.0
     *
     * @param array $args Parameters to pass to the callback functions.
     */
    public function do_action( $args ) {
        $this->doing_action = true;
        $this->apply_filters( '', $args );
 
        // If there are recursive calls to the current action, we haven't finished it until we get to the last one.
        if ( ! $this->nesting_level ) {
            $this->doing_action = false;
        }
    }
 
    /**
     * Processes the functions hooked into the 'all' hook.
     *
     * @since 4.7.0
     *
     * @param array $args Arguments to pass to the hook callbacks. Passed by reference.
     */
    public function do_all_hook( &$args ) {
        $nesting_level                      = $this->nesting_level++;
        $this->iterations[ $nesting_level ] = $this->priorities;
 
        do {
            $priority = current( $this->iterations[ $nesting_level ] );
/home/mfarre22/domains/mikefarrellsports.com/public_html/wp-includes/plugin.php
    if ( ! isset( $wp_filter[ $hook_name ] ) ) {
        if ( isset( $wp_filter['all'] ) ) {
            array_pop( $wp_current_filter );
        }
 
        return;
    }
 
    if ( ! isset( $wp_filter['all'] ) ) {
        $wp_current_filter[] = $hook_name;
    }
 
    if ( empty( $arg ) ) {
        $arg[] = '';
    } elseif ( is_array( $arg[0] ) && 1 === count( $arg[0] ) && isset( $arg[0][0] ) && is_object( $arg[0][0] ) ) {
        // Backward compatibility for PHP4-style passing of `array( &$this )` as action `$arg`.
        $arg[0] = $arg[0][0];
    }
 
    $wp_filter[ $hook_name ]->do_action( $arg );
 
    array_pop( $wp_current_filter );
}
 
/**
 * Calls the callback functions that have been added to an action hook, specifying arguments in an array.
 *
 * @since 2.1.0
 *
 * @see do_action() This function is identical, but the arguments passed to the
 *                  functions hooked to `$hook_name` are supplied using an array.
 *
 * @global WP_Hook[] $wp_filter         Stores all of the filters and actions.
 * @global int[]     $wp_actions        Stores the number of times each action was triggered.
 * @global string[]  $wp_current_filter Stores the list of current filters with the current one last.
 *
 * @param string $hook_name The name of the action to be executed.
 * @param array  $args      The arguments supplied to the functions hooked to `$hook_name`.
 */
function do_action_ref_array( $hook_name, $args ) {
/home/mfarre22/domains/mikefarrellsports.com/public_html/wp-content/themes/genesis/lib/framework.php
        genesis_markup(
            [
                'open'    => '<main %s>',
                'context' => 'content',
            ]
        );
 
            /**
             * Fires before the loop hook, after the main content opening markup.
             *
             * @since 1.0.0
             */
            do_action( 'genesis_before_loop' );
 
            /**
             * Fires to display the loop contents.
             *
             * @since 1.1.0
             */
            do_action( 'genesis_loop' );
 
            /**
             * Fires after the loop hook, before the main content closing markup.
             *
             * @since 1.0.0
             */
            do_action( 'genesis_after_loop' );
 
        genesis_markup(
            [
                'close'   => '</main>', // End .content.
                'context' => 'content',
            ]
        );
 
        /**
         * Fires after the content, before the main content sidebar wrap closing markup.
         *
         * @since 1.0.0
         */
/home/mfarre22/domains/mikefarrellsports.com/public_html/wp-content/themes/genesis/single.php
<?php
/**
 * Genesis Framework.
 *
 * WARNING: This file is part of the core Genesis Framework. DO NOT edit this file under any circumstances.
 * Please do all modifications in the form of a child theme.
 *
 * @package Genesis\Templates
 * @author  StudioPress
 * @license GPL-2.0-or-later
 * @link    https://my.studiopress.com/themes/genesis/
 */
 
// This file handles single entries, but only exists for the sake of child theme forward compatibility.
genesis();
 
/home/mfarre22/domains/mikefarrellsports.com/public_html/wp-includes/template-loader.php
            }
 
            break;
        }
    }
 
    if ( ! $template ) {
        $template = get_index_template();
    }
 
    /**
     * Filters the path of the current template before including it.
     *
     * @since 3.0.0
     *
     * @param string $template The path of the template to include.
     */
    $template = apply_filters( 'template_include', $template );
    if ( $template ) {
        include $template;
    } elseif ( current_user_can( 'switch_themes' ) ) {
        $theme = wp_get_theme();
        if ( $theme->errors() ) {
            wp_die( $theme->errors() );
        }
    }
    return;
}
 
Arguments
  1. "/home/mfarre22/domains/mikefarrellsports.com/public_html/wp-content/themes/genesis/single.php"
    
/home/mfarre22/domains/mikefarrellsports.com/public_html/wp-blog-header.php
<?php
/**
 * Loads the WordPress environment and template.
 *
 * @package WordPress
 */
 
if ( ! isset( $wp_did_header ) ) {
 
    $wp_did_header = true;
 
    // Load the WordPress library.
    require_once __DIR__ . '/wp-load.php';
 
    // Set up the WordPress query.
    wp();
 
    // Load the theme template.
    require_once ABSPATH . WPINC . '/template-loader.php';
 
}
 
Arguments
  1. "/home/mfarre22/domains/mikefarrellsports.com/public_html/wp-includes/template-loader.php"
    
/home/mfarre22/domains/mikefarrellsports.com/public_html/index.php
<?php
/**
 * Front to the WordPress application. This file doesn't do anything, but loads
 * wp-blog-header.php which does and tells WordPress to load the theme.
 *
 * @package WordPress
 */
 
/**
 * Tells WordPress to load the WordPress theme and output it.
 *
 * @var bool
 */
define( 'WP_USE_THEMES', true );
 
/** Loads the WordPress Environment and Template */
require __DIR__ . '/wp-blog-header.php';
 
Arguments
  1. "/home/mfarre22/domains/mikefarrellsports.com/public_html/wp-blog-header.php"
    

Environment & details:

empty
empty
empty
empty
empty
Key Value
SERVER_SOFTWARE
"nginx/1.28.0"
REQUEST_URI
"/college/nico-iamaleava-and-the-vols-shine-in-new-year-victory/"
USER
"mfarre22"
HOME
"/home/mfarre22"
HTTP_X_FORWARDED_PROTO
"https"
HTTP_CF_VISITOR
"{\"scheme\":\"https\"}"
HTTP_CF_IPCOUNTRY
"US"
HTTP_CF_CONNECTING_IP
"216.73.216.138"
HTTP_CDN_LOOP
"cloudflare; loops=1"
HTTP_CF_RAY
"97013eedbbda36b2-YYZ"
HTTP_ACCEPT_ENCODING
"gzip, br"
HTTP_REFERER
"https://mikefarrellsports.com/college/nico-iamaleava-and-the-vols-shine-in-new-year-victory"
HTTP_ACCEPT
"*/*"
HTTP_USER_AGENT
"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])"
HTTP_X_FORWARDED_FOR
"216.73.216.138"
HTTP_HOST
"mikefarrellsports.com"
SERVER_PROTOCOL
"HTTP/2.0"
SERVER_PORT
"443"
SERVER_NAME
"www.mikefarrellsports.com"
SERVER_ADDR
"::ffff:51.81.68.123"
SCRIPT_NAME
"/index.php"
SCRIPT_FILENAME
"/home/mfarre22/domains/mikefarrellsports.com/public_html/index.php"
REQUEST_SCHEME
"https"
REQUEST_METHOD
"GET"
REMOTE_PORT
""
REMOTE_ADDR
"216.73.216.138"
REDIRECT_STATUS
"200"
QUERY_STRING
""
HTTPS
"on"
GATEWAY_INTERFACE
"CGI/1.1"
DOCUMENT_URI
"/index.php"
DOCUMENT_ROOT
"/home/mfarre22/domains/mikefarrellsports.com/public_html"
CONTENT_TYPE
""
CONTENT_LENGTH
""
FCGI_ROLE
"RESPONDER"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1755350601.8947
REQUEST_TIME
1755350601
empty
0. Whoops\Handler\PrettyPageHandler